0
我在处理列表列表时发现了三个有用的操作。矩阵术语
mat=[list('abc'),list('pqr'),list('xyz')]
mat=[x for sl in mat for x in sl]
1.( “平坦”)
mat=list(zip(*mat))
(调换)mat=mat[::-1]
( “翻转”;第一变后者且反之亦然)
什么是特定术语进行这些操作,以及我忽略哪些关键操作?
我在处理列表列表时发现了三个有用的操作。矩阵术语
mat=[list('abc'),list('pqr'),list('xyz')]
mat=[x for sl in mat for x in sl]
1.( “平坦”)
mat=list(zip(*mat))
(调换)
mat=mat[::-1]
( “翻转”;第一变后者且反之亦然)
什么是特定术语进行这些操作,以及我忽略哪些关键操作?
ravel()
。 Matlab将其称为“向量化”并使用(搜索A(:)
)。fliplr
(左 - 右)和flipud
(上 - 下)。有很多其他的矩阵操作,一些更常见,一些更少。看看Numpy/Matlab/Julia /等。文档会打动你的脑海。
我想你可以称之为列表转换。另一个有用的转换是旋转:从列表的一端移动项目并将它们添加到另一端;在Python中常用的方法是通过切片。 –
顺便说一句,你可以使用'map'来完成你的初始构造,尽管只有3个字符串没有太大的区别。 'mat = list(map(list,('abc','pqr','xyz')))'。此外,'list(zip(* [iter('abdpqrxyz')] * 3))'或'list(map(list,zip(* [iter('abdpqrxyz')] * 3)))'如果inner序列必须是列表而不是元组。 –