如何对字典内的列表执行操作?批量修改字典列表元素方法
你给出的原始字典定义存在语法错误,'numbers2':[4,5,6] 行尾缺少逗号,运行前需要先补全,否则会触发语法报错。
实现方法
要把字典里所有列表的数值统一乘以3,只需要遍历字典的所有键,对每个键对应的列表逐元素做乘3运算,再替换原有值即可,最直观的写法如下:
# 补全逗号后的原始字典 my_dict = {'numbers':[1,2,3], 'numbers2':[4,5,6], 'numbers3':[7,8,9]} for k in my_dict: my_dict[k] = [num * 3 for num in my_dict[k]]
运行后打印my_dict就能得到你要的结果:
{'numbers': [3, 6, 9], 'numbers2': [12, 15, 18], 'numbers3': [21, 24, 27]}
其他参考写法
- 如果你需要保留原始字典不做修改,可以用字典推导式生成全新的字典:
new_dict = {k: [num*3 for num in v] for k, v in my_dict.items()}
- 如果字典后续可能混入非列表类型的值,可以加一层类型判断避免报错:
for k in my_dict: if isinstance(my_dict[k], list): my_dict[k] = [num * 3 for num in my_dict[k]]
内容的提问来源于stack exchange,提问作者Haga Menezes
相关产品推荐
相关产品推荐

