tx1012 发表于 2023-1-13 10:21:17

求助:列表循环删除

诉求:在原始列表里随机抽取三个人,然后除去这三个人。

lst=[]-------这个就是一个名单,具体见下面输出的,就不复制了

print("原始:",lst)
n3 = random.sample(lst,3)
print("随机抽三个:",n3)
for n3 in lst:
    lst.remove(n3)
print("剩下的:",lst)


结果:

原始: ['孙*涵', '解*旋', '闫*琪', '黄*佳', '臧*云', '孙*斯', '孙*东', '赵*生', '罗*璇', '许*月', '屈*秀', '孟*南', '谭*彬', '刘*雄', '刘*慧']
随机抽三个: ['闫*琪', '刘*雄', '罗*璇']
剩下的: ['解*旋', '黄*佳', '孙*斯', '赵*生', '许*月', '孟*南', '刘*雄']

我觉得程序没啥问题,但是明显看到这个刘*雄还在列表里,没被删除啊

isdkz 发表于 2023-1-13 10:28:30

for n3 in lst: 这里有问题,不要用 n3 覆盖掉原来的 n3,而且应该是 in n3 ,而不是 in lst
import random
lst=['孙*涵', '解*旋', '闫*琪', '黄*佳', '臧*云', '孙*斯', '孙*东', '赵*生', '罗*璇', '许*月', '屈*秀', '孟*南', '谭*彬', '刘*雄', '刘*慧']

print("原始:",lst)
n3 = random.sample(lst,3)
print("随机抽三个:",n3)
for i in n3:                  # 改了这里
    lst.remove(i)             # 改了这里
print("剩下的:",lst)

tx1012 发表于 2023-1-13 10:35:01

isdkz 发表于 2023-1-13 10:28
for n3 in lst: 这里有问题,不要用 n3 覆盖掉原来的 n3,而且应该是 in n3 ,而不是 in lst

哦哦,感谢感谢
页: [1]
查看完整版本: 求助:列表循环删除