我的词典列表:
my_dict1 = [{'id': 101, 'noob': False},
{'id': 102, 'noob': True}]
我知道101的名字叫凯特(Kate),我该如何创建一个新的字典列表,其内容如下:
my_dict2 = [{'id': 'Kate', 'noob': False},
{'id': 102, 'noob': True}]
编辑:由于无法预先知道字典的顺序,因此无法通过列表中的索引访问字典
答案 0 :(得分:1)
my_dict1
是词典列表的地方,您可以使用for循环遍历该列表。然后,您可以检查相应值101
是否在该特定索引处的字典值中。
保留一个变量,将其初始化为0,并在每次循环中将其递增,以跟踪当前词典所在的索引。如果在该词典的值中找到101
,请使用存储在index变量中的当前值来索引该列表。您已经知道密钥是'id'
。
由于您使用索引来访问特定的字典,因此可以使用【{{1}】键来访问该字典中的值。此外,字典是可变的,因此您可以按如下所示直接更改值:'id'
my_dict1[index]['id'] = 'Kate'
答案 1 :(得分:0)
以下是在列表中搜索和更改相应字典的方法:
my_dict1 = [{'id': 101, 'noob': False},
{'id': 102, 'noob': True}]
class NotFoundError(Exception): pass
def change_id(my_list, old_id, new_id):
for d in my_list:
if d['id'] == old_id:
d['id'] = new_id
return
else:
raise NotFoundError(f'Old id {old_id!r} not found')
change_id(my_dict1, 101, 'Kate')
print(my_dict1) # -> [{'id': 'Kate', 'noob': False}, {'id': 102, 'noob': True}]