如何从列表中删除特定值

时间:2021-01-26 17:54:58

标签: python

需要一点帮助; 具有以下字典列表:

[{'Nome': 'sapo', 'pecaespeciais': [3, 3, 2]}, {'Nome': 'ivone', 'pecaespeciais': [3, 3, 2]}]

我怎样才能只删除这 3 个中的一个; 例如:

[{'Nome': 'sapo', 'pecaespeciais': [3, 2]}, {'Nome': 'ivone', 'pecaespeciais': [3, 3, 2]}]

我现在的代码:

            if TamanhoPeça in jogador_peca[1]['pecaespeciais']:
                jogador_peca[1]['pecaespeciais'].remove(TamanhoPeça)

TamanhoPeça 是要删除的号码 现在,当我运行代码时,它显示如下:

[{'Nome': 'sapo', 'pecaespeciais': [3, 2]}, {'Nome': 'ivone', 'pecaespeciais': [3, 2]}]

谢谢

1 个答案:

答案 0 :(得分:1)

这是您的代码,它处于可以运行的状态。它似乎可以满足您的要求:

TamanhoPeça = 3
jogador_peca = [{'Nome': 'sapo', 'pecaespeciais': [3, 3, 2]}, {'Nome': 'ivone', 'pecaespeciais': [3, 3, 2]}]
if TamanhoPeça in jogador_peca[1]['pecaespeciais']:
    jogador_peca[1]['pecaespeciais'].remove(TamanhoPeça)
print(jogador_peca)

结果:

[{'Nome': 'sapo', 'pecaespeciais': [3, 3, 2]}, {'Nome': 'ivone', 'pecaespeciais': [3, 2]}]

在我看来,它已经只删除了“3”值之一。由于 [1] 表达式中的 remove,它正在从第二项中删除。

如果您运行此行并从两个列表中删除了 3,那么您必须有一个仅存在一次且在您的数据结构中被引用两次的列表 [3, 3, 2]