我有一个列表:
['col1', False, False, False, False, False]
['col1', 'col2', False, False, False, False]
['col1', False, 'col3a', False, False, False]
['col1', False, 'col3b', False, False, False]
['col1', False, False, 'col4', False, False]
['col1', False, False, 'col4', False, False]
当我浏览每一行时,我会查看当前项目是否
False
如果前一行中的项目(相同位置)不是
错误
,我将用上一个项目替换当前项目。
因此,新的列表将是:
list_of_lists = [
['col1', False, False, False, False, False],
['col1', 'col2', False, False, False, False],
['col1', 'col2', 'col3a', False, False, False],
['col1', 'col2', 'col3b', False, False, False],
['col1', 'col2', 'col3b', 'col4', False, False],
['col1', 'col2', 'col3b', 'col4', False, False],
]
这是我的代码:
for row_num in range(len(list_of_lists)):
display_list = []
if row_num == 0:
continue
for col_num in range(len(list_of_lists[row_num])):
current_row = list_of_lists[row_num][col_num]
previous_row = list_of_lists[row_num - 1][col_num]
if current_row == False and previous_row != False:
display_list.append(previous_row)
else:
display_list.append(current_row)
print(display_list)
它错误地输出:
['col1', False, False, False, False, False]
['col1', 'col2', False, False, False, False]
['col1', 'col2', 'col3a', False, False, False]
['col1', False, 'col3b', False, False, False]
['col1', False, 'col3b', 'col4', False, False]
['col1', False, False, 'col4', False, False]
为什么它只修改了两个值?如果
错误
值被替换了,在下一次迭代中,它似乎不知道它变了?例如:
['col1', 'col2', 'col3a', False, False, False]
['col1', False, 'col3b', False, False, False]
为什么第二个列表中的第一个项目不知道
'col2'
已更新,因此使用它来替换
错误
处于其位置?