从列表中的列表创建矩阵

时间:2014-04-13 23:46:23

标签: python arrays list matrix

我有以下列表:

sortedList = [['2', 'f'],['5', 'B'],['8', '6'],['32','@'],['43', 'G'],['76', '.'],['173', 'v'],['200', '.'],['265', 'y']]

我正在尝试从此列表创建一个3x3矩阵,以便输出如下:

matrix = [['f','B','6'],['@','G','.'],['v','.','y']]

基本上,我需要找到一个函数,它将获取每个列表的最后一个字符串并将其放入3个字符串中。

1 个答案:

答案 0 :(得分:3)

您可以使用list comprehension收集每个项目中的最后一个字符串:

In [67]: [item[-1] for item in sortedList]
Out[67]: ['f', 'B', '6', '@', 'G', '.', 'v', '.', 'y']

然后,要以3个为一组收集这些项目,请使用grouper recipe

In [68]: zip(*[(item[-1] for item in sortedList)]*3)
Out[68]: [('f', 'B', '6'), ('@', 'G', '.'), ('v', '.', 'y')]

请注意,分组器配方zip(*[iterator]*3)调用迭代器,因此列表理解被generator expression替换。