1

我正在尝试在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 个整数的情况,这给了我不正确的结果。有谁知道我可以如何使用另一个功能来做我想做的事?

谢谢!

4

1 回答 1

4

使用list comprehensionstr.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']
于 2013-05-28T14:49:37.370 回答