一个简单的循环解包,写成字典后向后添加到列表中。
前面六步都没问题,可是最后一次append会把前面六个元素都修改掉,这是为什么呢?
items_index = range(7)
value = [10, 40, 30, 50, 35, 40, 30]
weight = [35, 30, 60, 50, 40, 10, 25]
item = {}
items = []
for i in range(len(items_index)):
item['index'] = items_index[i] + 1
item['value'] = value[i]
item['weight'] = weight[i]
items.append(item)
print('第'+str(i+1)+'次:')
print(items)
print('最后结果:')
print(items)
结果如下:
你这样列表里都是同一个item对象,把item放循环内初始化。另外,你用items_index时,直接写for i in items_index就好了,用不着len。