我正在尝试生成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]
?
答案 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是否已存在于某处。根据列表的语言和类型,您可以删除特定索引处的元素,只需附加到新的"唯一的"我试图在上面描述的列表。