我有这个列表
[['a', 'a', 'a', 'a'],
['b', 'b', 'b', 'b', 'b'],
['c', 'c', 'c', 'c', 'c']]
我想连接每一行中的第二个和第三个元素,从第二行开始,做这样的事情:
[['a', 'a', 'a', 'a'],
['b', 'bb', 'b', 'b'],
['c', 'cc', 'c', 'c']]
当我对每一行都这样做时,它似乎工作正常:
for index, item in enumerate(list_of_lines, start=0):
list_of_lines[index][1:3] = [''.join(item[1:3])]
但是当我从第二行开始时 - 我有“列表索引超出范围”错误:
for index, item in enumerate(list_of_lines, start=1):
list_of_lines[index][1:3] = [''.join(item[1:3])]
请您参考如下方法:
当你打电话时
enumerate(list_of_lines, start=1)
,它生成的对不是
1 ['b', 'b', 'b', 'b', 'b']
2 ['c', 'c', 'c', 'c', 'c']
,而是
1 ['a', 'a', 'a', 'a']
2 ['b', 'b', 'b', 'b', 'b']
3 ['c', 'c', 'c', 'c', 'c']
也就是说,起始值表示使用的第一个索引应该是什么,而不是要使用的第一个元素是什么。
也许另一种方法如下:
for (index, item) in list(enumerate(list_of_lines))[1:]:
list_of_lines[index][1:3] = [''.join(item[1:3])]
