我正在尝试提取python中csv列表中的每个整数,它可以采用不同的形式:
[[0, 3], [1, 2], [2, 1], [3, 0]]
或
[[0, 0, 3], [0, 1, 2], [0, 2, 1], [0, 3, 0], [1, 0, 2], [1, 1, 1], [1, 2, 0], [2, 0, 1], [2, 1, 0], [3, 0, 0]]
甚至只是
[[2]]
我想做的是从每个元素中提取每个整数,并将其附加到x,即我的第一个列表生成[x03, x12, x21, x30]
,或者第二个生成[x003, x021, x021, x030, x102, ....]
我一直这样做
for i in range(len(gmomvec)):
string=str(gmomvec[i])
num=string[1::3]
mm.append(Symbol('x'+num))
]
其中gmomvec是列表的名称,mm是我希望获得的结果列表。 但是我刚刚意识到这对于每个列表元素中有2个整数的情况给出了错误的结果。 有谁知道如何使用其他功能来做我想做的事情?
谢谢!
答案 0 :(得分:4)
使用list comprehension
和str.join()
>>> lis = [[0, 3], [1, 2], [2, 1], [3, 0]]
>>> ["x" + "".join(map(str,x)) for x in lis]
['x03', 'x12', 'x21', 'x30']
>>> lis = [[0, 0, 3], [0, 1, 2], [0, 2, 1], [0, 3, 0], [1, 0, 2], [1, 1, 1], [1, 2, 0], [2, 0, 1], [2, 1, 0], [3, 0, 0]]
>>> ["x" + "".join(map(str,x)) for x in lis]
['x003', 'x012', 'x021', 'x030', 'x102', 'x111', 'x120', 'x201', 'x210', 'x300']
map(str, sequence)
将str
函数应用于序列的每个元素,以便可以使用str.join
连接它们
>>> map(str, [1,2,3])
['1', '2', '3']