gpt4 book ai didi

python - 为什么不从列表中删除特定值?

转载 作者:太空宇宙 更新时间:2023-11-03 20:45:36 24 4
gpt4 key购买 nike

我正在尝试完成以下简短练习:迭代给定列表并检查给定元素是否已作为键值存在于字典中,如果不从列表中删除它。

我的解决方案似乎有效,并从列表中删除所有项目,这些项目在字典中不作为值存在,除了一个值... 95 。怎么会这样?

当我进行调试时,在循环迭代期间,Python 似乎会跳过该值 ( 95 ):

rollNumber = [47, 64, 69, 37, 76, 83, 95, 96, 97]
sampleDict = {"Jhon": 47, "Emma": 69, "Kelly": 76, "Jason": 97}

for current_item in rollNumber:
if not current_item in sampleDict.values():
rollNumber.remove(current_item)

print(rollNumber)

实际结果:

[47, 69, 76, 95, 97]

预期结果:

[47, 69, 76, 97]

最佳答案

试试这个

rollNumber = [47, 64, 69, 37, 76, 83, 95, 96, 97]
sampleDict = {"Jhon": 47, "Emma": 69, "Kelly": 76, "Jason": 97}

rollNumber = [i for i in rollNumber if i in sampleDict.values()]

print(rollNumber)

结果:[47,69,76,97]

关于python - 为什么不从列表中删除特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56626370/

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