我有一个矩阵:
matrix = [['F', 'B', 'F', 'A', 'C', 'F'],
['D', 'E', 'B', 'E', 'B', 'E'],
['F', 'A', 'D', 'B', 'F', 'B'],
['B', 'E', 'F', 'B', 'D', 'D']]
我想删除和收集每个子列表的前两个元素,并将它们添加到新列表中。你知道吗
到目前为止,我得到了:
while messagecypher:
for vector in messagecypher:
final.extend(vector[:2])
问题是,slice
似乎没有删除元素,我最终得到了一个庞大的重复字符列表。我可以用.pop(0)
两次,但那不是很干净。你知道吗
注意:我删除元素的原因是因为我需要继续遍历每个向量,直到矩阵为空
您可以保留
slice
并执行以下操作:注意,这同时将切片列表分配回
matrix
,并将切片部分添加到final
。你知道吗删除元素不是执行任务的有效方法。它需要Python执行大量不必要的工作来改变东西,以填补被删除元素留下的漏洞。相反,每次在循环中只需将切片移动两个位置:
好吧,你可以用列表理解来完成这件事,但这可能违反直觉:
编辑:
使用
range
使语法看起来更清晰:相关问题 更多 >
编程相关推荐