【问题标题】:I am not getting the right output for dictionary and list in python我在 python 中没有得到正确的字典和列表输出
【发布时间】:2022-06-12 22:10:54
【问题描述】:
roll_number = [47, 64, 69, 37, 76, 83, 95, 97]
sample_dict = {'Jhon':47, 'Emma':69, 'Kelly':76, 'Jason':97}
 
for a in roll_number:
    if a not in sample_dict.values():
        roll_number.remove(a)

print(roll_number)

我的输出是 [47, 69, 76, 95, 97] 而不是 [47, 69, 76, 97]。谁能解释一下?

【问题讨论】:

  • 为什么会有这个输出?

标签: python list


【解决方案1】:

您可以使用set 来“冻结”数组并安全地删除其值:

roll_number = [47, 64, 69, 37, 76, 83, 95, 97]
sample_dict = {'Jhon':47, 'Emma':69, 'Kelly':76, 'Jason':97}

roll_set = set(roll_number)
for a in roll_number:
    if a not in sample_dict.values():
        roll_set.remove(a)

print(roll_set)

它将打印{97, 69, 76, 47}。如果你想要一个列表,你可以使用list(roll_set)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2014-01-05
    • 1970-01-01
    相关资源
    最近更新 更多