如何将整数列表迭代写入字典的列表值中
解决方案
要实现将lis中的元素按每两个一组替换test_dict对应键的列表值,可以按以下方式操作:
- 先把
lis拆分为每2个元素一组的子列表,刚好匹配原字典中每个值的长度 - 遍历字典的键和拆分后的子列表,逐个更新字典的值
具体代码如下:
test_dict = {'aaa' : [1, 2], 'bbb' : [4, 5], 'ccc' : [7, 8]} lis = [11, 22, 44, 55, 77, 88] # 拆分lis为每2个元素一组的子列表 groups = [lis[i:i+2] for i in range(0, len(lis), 2)] # 遍历字典键和分组后的列表,更新值 for key, group in zip(test_dict.keys(), groups): test_dict[key] = group print(test_dict) # 输出: {'aaa': [11, 22], 'bbb': [44, 55], 'ccc': [77, 88]}
如果想更简洁,也可以用字典推导式一行完成:
test_dict = {key: lis[i*2:i*2+2] for i, key in enumerate(test_dict.keys())}
说明
range(0, len(lis), 2)生成步长为2的索引,用来将列表拆分为每2个元素一组zip(test_dict.keys(), groups)会将字典的键和拆分后的子列表一一对应,Python 3.7及以上版本的字典会保留插入顺序,确保匹配关系正确
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

