需求
key_counts中保存了key和value。生成一个列表,根据value的数字,生成value个key。
问题
发现每循环一次,生成的新列表末尾就会多一个空值。
代码
key_counts = [{'key': 'qj', 'value': 3}, {'key': 'wuhan', 'value': 2}, {'key': 'xy', 'value': 2}, {'key': 'zz', 'value': 10}]
total = 17 # 上面字段中数值的和,初始化一个同样长度的列表
v1 = ['' for x in range(total)]
print(v1)
count = 0
for key_count in key_counts:
start = count
end = start + key_count['value'] - 1
count = end + 1
print(start, end, key_count['key'])
xlist = [key_count['key'] for x in range(key_count['value'])]
print(xlist)
v1[start:end] = xlist
print(v1)
输出结果
['', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
0 2 qj
['qj', 'qj', 'qj']
['qj', 'qj', 'qj', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
3 4 wuhan
['wuhan', 'wuhan']
['qj', 'qj', 'qj', 'wuhan', 'wuhan', '', '', '', '', '', '', '', '', '', '', '', '', '', '']
5 6 xy
['xy', 'xy']
['qj', 'qj', 'qj', 'wuhan', 'wuhan', 'xy', 'xy', '', '', '', '', '', '', '', '', '', '', '', '', '']
7 16 zz
['zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz']
['qj', 'qj', 'qj', 'wuhan', 'wuhan', 'xy', 'xy', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', 'zz', '', '', '', '']
列表末尾,每循环了一次,都被多增加了一个元素(可能理解错误。)
list 切片错误。
应改为: