如何检查元组中的各个项是否不在列表中

时间:2015-04-07 19:40:26

标签: python

我想从元组列表中选择一个随机元组并将其添加到另一个列表中。但只有元组中的单个数字不在列表中。 我试过这个但它失败了:

from random import choice

MyList = []
T = [(1,2),(3,4),(5,6),(1,3)]

while len(MyList) <=4:
    p = choice(T)
    p1 = p[0]
    p2 = p[1]
    if p1,p2 not in MyList:
        MyList.append(p1,p2)

3 个答案:

答案 0 :(得分:1)

while len(myList) <= 4:
    p = choice(T)
    if not any(i in myList for i in p):
        myList.extend(p)

>>> myList
[1, 2, 5, 6, 3, 4]

因此,要检查列表中是否有多个元素,您可以使用我上面显示的内容

if not any(i in myList for i in p):

答案 1 :(得分:0)

如果订单不重要,您可以使用集而不是列表

from random import choice
from sets import Set

MyList = Set()
T = [(1,2),(3,4),(5,6),(1,3)]

while len(MyList) <=4:
    MyList.update(choice(T))

>>> MyList
Set([1, 2, 3, 5, 6])

答案 2 :(得分:0)

插入时将元组的单个数字放入集合中,并在插入之前检查元组的编号是否在集合中。