【问题标题】:Removing Element from Dictionary's Values从字典的值中删除元素
【发布时间】:2021-04-09 11:20:05
【问题描述】:

我有一个以列表为值的字典,如下所示: {"a":[1,2,3,4,5],"b":[6,7,8,9,10]}

如何从字典值中删除某些元素?例如,从键 a 中删除元素 3 将导致:{"a":[1,2,4,5],"b":[6,7,8,9,10]}

我使用的是 Python 版本 3.9.1。

【问题讨论】:

  • 我编辑了我的答案,请检查编辑:部分

标签: python list dictionary key


【解决方案1】:

尝试使用字典理解:

dct = {"a": [1, 2, 3, 4, 5], "b": [6, 7, 8, 9, 10]}
print({k: [i for i in v if v != 3] for k, v in dct.items()})

输出:

{'a': [1, 2, 4, 5], 'b': [6, 7, 8, 9, 10]}

我通过键和值遍历字典,我不修改键,但我通过遍历每个值的列表来修改值,并且只保留不是3 的列表值。

已编辑:

正如 OP 在 cmets 中所说,他只想从 a 键中删除 3s。

所以试试这个:

dct = {"a": [1, 2, 3, 4, 5], "b": [1, 2, 3, 4, 5]}
print({k: (v if k != 'a' else [i for i in v if i != 3]) for k, v in dct.items()})

输出:

{"a": [1, 2, 4, 5], "b": [1, 2, 3, 4, 5]}

【讨论】:

  • @AkhmadZaki 我编辑了我的答案,请检查 Edit: 部分,如果可行,请记得接受并投票 :-)
  • 我试过了,它删除了 b 键的所有值。 @U11-转发
  • @AkhmadZaki 我编辑了我的答案,现在应该可以使用了
  • 我认为v if k=='a' 应该是v if k!='a'
  • @AkhmadZaki 很抱歉,请再次检查 Edit: 部分,它现在应该可以正常工作了。
猜你喜欢
  • 1970-01-01
  • 2016-05-06
  • 2011-08-16
  • 1970-01-01
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
相关资源
最近更新 更多