如何在python中按索引创建列表中的项目列表

时间:2019-01-11 08:38:23

标签: python list

我有一个列表m

m = ['ABC', 'XYZ', 'LMN']

我想输出如下:

m = [['a','x','l']
     ['b','y','m']
     ['c','z','n']]

这怎么办?

3 个答案:

答案 0 :(得分:1)

使用list(zip(*..))来转置嵌套列表,并使用列表理解来创建嵌套列表:

print(list(zip(*[list(i.lower()) for i in m])))

输出:

[('a', 'x', 'l'), ('b', 'y', 'm'), ('c', 'z', 'n')]

如果希望将子值列出:

print(list(map(list,zip(*[list(i.lower()) for i in m]))))

输出:

[['a', 'x', 'l'], ['b', 'y', 'm'], ['c', 'z', 'n']]

答案 1 :(得分:1)

您需要的是列表理解,zip进行换位,map转换为下位。

   > m=['ABC','XYZ','LMN']
   > [list(map(str.lower, sub)) for sub in zip(*m)]
   [['a', 'x', 'l'], ['b', 'y', 'm'], ['c', 'z', 'n']]

答案 2 :(得分:0)

m=['ABC','XYZ','LMN']
import numpy as np
new_list = [[0, 0, 0], [0, 0,0],[0,0,0]]

j = 0

for i in m:
    a = list(i.lower())
    print(a)
    new_list[j] = a
    j = j+1
np.transpose(new_list).tolist()

输出:

[['a', 'x', 'l'], ['b', 'y', 'm'], ['c', 'z', 'n']]