如果第一个元素不在列表中,则将新元组添加到列表
Add new tuple to list if first element is not already in list
我只想在第一个元素 nickName 不在列表中时向元组列表添加一个新元组。如果 userName 和 nickName 都在列表中,我可以让它匹配,但如果昵称在其中,我就无法让它匹配。
nickList = []
def NICK(addr,clientMessage):
nickName = clientMessage[1]
userName = clientMessage[3]
if (nickName, userName) not in nickList:
nickList.append((nickName,userName))
response = 'NICK and USER successfully added to list'
UDPServerSocket.sendto(response.encode(), (addr))
else:
response = 'NICK already taken'
UDPServerSocket.sendto(response.encode(), (addr))
如果 userName 和 nickName 都已在列表中,此代码将匹配,但我希望它仅在列表中只有 nickName 时附加 nickName 和 userName。
您可以将您的条件更改为以下内容:
if nickName not in list(zip(*nickList))[0]
zip(*)
迭代您的元组列表并聚合每个第一个元素、每个第二个元素等。然后我们可以形成一个列表并索引第一个元素 [0]
.
我只想在第一个元素 nickName 不在列表中时向元组列表添加一个新元组。如果 userName 和 nickName 都在列表中,我可以让它匹配,但如果昵称在其中,我就无法让它匹配。
nickList = []
def NICK(addr,clientMessage):
nickName = clientMessage[1]
userName = clientMessage[3]
if (nickName, userName) not in nickList:
nickList.append((nickName,userName))
response = 'NICK and USER successfully added to list'
UDPServerSocket.sendto(response.encode(), (addr))
else:
response = 'NICK already taken'
UDPServerSocket.sendto(response.encode(), (addr))
如果 userName 和 nickName 都已在列表中,此代码将匹配,但我希望它仅在列表中只有 nickName 时附加 nickName 和 userName。
您可以将您的条件更改为以下内容:
if nickName not in list(zip(*nickList))[0]
zip(*)
迭代您的元组列表并聚合每个第一个元素、每个第二个元素等。然后我们可以形成一个列表并索引第一个元素 [0]
.