你如何检查列表是否在python中重复变量?

时间:2017-07-14 22:24:03

标签: python list random

我正在尝试生成7个值的随机列表,并希望检查列表中的重复数字,并从列表中删除它们。我目前有:

import random
acard1 = random.randrange(0,13,1)
acard2 = random.randrange(0,13,1)
acard3 = random.randrange(0,13,1)
acard4 = random.randrange(0,13,1)
acard5 = random.randrange(0,13,1)
acard6 = random.randrange(0,13,1)
acard7 = random.randrange(0,13,1)
myhand=[acard1, acard2, acard3, acard4, acard5, acard6, acard7]
print(myhand)

如何检查是否存在重复值,然后删除这些值?

例如,如果我的列表是[11, 7, 11, 12, 9, 9, 10], 如何让我的程序识别出11和9重复并将列表转换为[7, 12, 10]

2 个答案:

答案 0 :(得分:2)

这是使用collections.Counter

的简单技巧
In [451]: from collections import Counter

In [453]: c = Counter(l)

In [454]: [x for x in l if c[x] == 1]
Out[454]: [7, 12, 10]

使用l.count(x)的列表理解的任何答案肯定会慢于此。

答案 1 :(得分:0)

也许创建一个列表,通过检查是否采用索引号来保存唯一条目?使索引1包含数字1,索引2包含数字2,依此类推。

或者,您可以搜索整个列表以检查11是否已存在于某处。根据列表的语言和类型,您可以删除特定索引处的元素,只需附加到新的"唯一的"我试图在上面描述的列表。