gpt4 book ai didi

Python:列出字典,替换某些值

转载 作者:行者123 更新时间:2023-12-01 03:17:30 24 4
gpt4 key购买 nike

如何替换列出字典中特定键的值?但替换应该在有条件的情况下进行(即,如果它们开头有 2 位数字)。最好具有列表/字典理解。

示例:

a_list = [{'key1': 'A picture 1', 'key2': 'location 1', 'key3': '20 title1'}, {'key1': 'A picture 2', 'key2': 'location 2', 'key3': '10 title2'}]

我想从 key3 的值中删除前两位数字。

最佳答案

我会在列表理解中使用字典理解来做到这一点。

字典理解会重建字典,但会在以下情况下更改值:

  • 键是key3并且
  • 字符串的前 2 个字符是数字

更改正在占用前导空间的右侧部分。

a_list = [{'key1': 'A picture 1', 'key2': 'location 1', 'key3': '20 title1'}, {'key1': 'A picture 2', 'key2': 'location 2', 'key3': '10 title2'}]

a_new_list = [{k:v.partition(" ")[2] if (k=="key3" and v[:2].isdigit()) else v for k,v in d.items()} for d in a_list]

print(a_new_list)

结果:

[{'key1': 'A picture 1', 'key2': 'location 1', 'key3': 'title1'}, {'key1': 'A picture 2', 'key2': 'location 2', 'key3': 'title2'}]

注意:如果数字超过 2 位,还将删除第一位数字。条件很广泛,应根据您的需求进行调整。

编辑:符合 Python 2.7 之前标准的替代方案(字典理解不存在时):

a_new_list = [dict((k,v.partition(" ")[2] if (k=="key3" and v[:2].isdigit()) else v) for k,v in d.items()) for d in a_list]

关于Python:列出字典,替换某些值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42332843/

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