gpt4 book ai didi

python - 在Python中对字典进行迭代操作

转载 作者:行者123 更新时间:2023-12-01 05:32:35 25 4
gpt4 key购买 nike

我有一本字典,看起来像:

result = {
'mary': [1, 2, 3, ''],
'anna': [7, 9, 8],
'liz': [2, 1, '', ''],
}

我想从所有项目中删除所有''并保存新版本的词典。我正在尝试这个:

token = ()
for key, value in sorted(result.items()):
token = (key, [item for item in value if item])
print(token)

但它只在字典中运行一次并仅返回第一行。我知道这是非常基础的,但我对 Python 很陌生(正如你所知)。谁能帮我解决这个问题吗?

最佳答案

您可以结合使用字典和列表理解:

result = {key: [v for v in value if v != ''] for key, value in result.items()}

这将创建一个新的字典,其中复制了每个键和值,但值被过滤为仅包含非空字符串的值:

>>> result = {
... 'mary': [1, 2, 3, ''],
... 'anna': [7, 9, 8],
... 'liz': [2, 1, '', ''],
... }
>>> {key: [v for v in value if v != ''] for key, value in result.items()}
{'liz': [2, 1], 'mary': [1, 2, 3], 'anna': [7, 9, 8]}

如果您使用的是 Python 2,您可能需要使用 result.iteritems() 来实现更高效的循环。

你的循环就快到了,你只是忘了分配回字典:

for key, value in result.items():
result[key] = [v for v in value if v != '']

关于python - 在Python中对字典进行迭代操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866553/

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