【发布时间】:2019-09-08 19:45:15
【问题描述】:
我有一个列表形式的数字列表,我想将列表元素与字典值进行比较
我以两种方式尝试了解决方案。
lr =[47, 64, 69, 37, 76, 83, 95, 97]
di ={'Jhon':47, 'Emma':69, 'Kelly':76, 'Jason':97}
expected output : after removing unwanted elemnts from list[47, 69, 76, 97]
method 1: ( Success)
lr =[47, 64, 69, 37, 76, 83, 95, 97]
di ={'Jhon':47, 'Emma':69, 'Kelly':76, 'Jason':97}
for i in lr:
if i in di.values():
ln.append(i)
print(ln)
===============success========================
**********************************************
Method 2: (Failed)
lr =[47, 64, 69, 37, 76, 83, 95, 97]
di ={'Jhon':47, 'Emma':69, 'Kelly':76, 'Jason':97}
for i in lr:
if i in di.values():
pass
else:
lr.remove(i)
print(lr)
==================failed=======================
for method 2 i am getting result as [47, 69, 76, 88, 88, 97]
not sure what wrong in the method 2
【问题讨论】:
-
还有什么问题?
-
您不应该在迭代列表时对其进行变异。如果你真的需要这样做,迭代 list(lr)
-
明确说明您的问题或目标...比较后做什么?如果您已经有一个可行的方法,那么问题是什么?
-
@ Eden,当我使用 list.remove() 比较和删除不存在的元素时,它不起作用..所以我想知道在第二种方法中我的错误是什么我正在制作 .. 我正在比较 lr =[47, 64, 69, 37, 76, 83, 95, 97] di ={'Jhon':47, 'Emma':69, 'Kelly':76, 'Jason' :97}
标签: python dictionary arraylist