gpt4 book ai didi

python - 从另一个列表中减去一个列表不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 04:46:54 27 4
gpt4 key购买 nike

我已经尝试这样做一段时间了,我已经尝试了我在论坛上找到的东西,但它仍然没有用,我觉得这是一个非常明显的错误。这是我的代码:

allnum=[]
num=[]
for i in range(100):
allnum.append(random.randint(1,99))

num.append(allnum[:10])
print (allnum)
print(num)

allnum= [i for i in allnum if i not in num]
print (allnum)

结果就是:[55, 94, 88, 66, 34, 99, 76, 41, 48, 55, 84, 16, 57, 58, 46, 26, 10, 25, 10, 94, 93, 3, 29, 74, 6, 47, 45, 67, 1, 9, 10, 10, 3, 34, 13, 91, 81, 70, 87, 46, 26, 52, 28, 66, 88, 9, 30, 43, 85, 32, 38, 5, 60, 65, 27, 52, 68, 94, 94, 14, 46, 5, 8, 9, 32, 62, 6, 18, 84, 86, 2, 12, 97, 99, 84, 13, 64, 39, 84, 75, 23, 88, 21, 60, 37, 33, 75, 53, 88, 54, 28, 5, 29, 97, 38, 21, 27, 25, 17, 31]

[[55, 94, 88, 66, 34, 99, 76, 41, 48, 55]]

[55, 94, 88, 66, 34, 99, 76, 41, 48, 55, 84, 16, 57, 58, 46, 26, 10, 25, 10, 94, 93, 3 , 29, 74, 6, 47, 45, 67, 1, 9, 10, 10, 3, 34, 13, 91, 81, 70, 87, 46, 26, 52, 28, 66, 88, 9, 30 , 43, 85, 32, 38, 5, 60, 65, 27, 52, 68, 94, 94, 14, 46, 5, 8, 9, 32, 62, 6, 18, 84, 86, 2, 12 , 97, 99, 84, 13, 64, 39, 84, 75, 23, 88, 21, 60, 37, 33, 75, 53, 88, 54, 28, 5, 29, 97, 38, 21, 27 , 25, 17, 31]

对不起,如果这是一个非常愚蠢的错误:)

最佳答案

您使用了 num.append,它将一个对象作为参数并将其附加到列表中。因此,您附加了一个元素,它是一个包含十个整数的列表(请注意打印 num 时的两个左方括号和右方括号。

您想使用 extend,它接受一个可迭代对象作为参数,并将它的每个元素添加到列表中:

num.extend(allnum[:10])

或者,更简单地说,因为 num 之前是空的:

num = allnum[:10]

另请注意,测试每个元素是否在 num 列表中非常慢。测试元素是否属于 set 要快得多.

所以,你可以使用:

import random

allnum=[]
num=[]
for i in range(100):
allnum.append(random.randint(1,99))

num = set(allnum[:10])
print (allnum)
print(num)

allnum = [i for i in allnum if i not in num]
print(allnum)

关于python - 从另一个列表中减去一个列表不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49370023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com