如果第一个元素不在列表中,则将新元组添加到列表

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].