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]]

私がやりたいことは、各要素からすべての整数を抽出し、最初のリストの Produce[x03, x12, x21, x30]または 2 番目の Produce の x にアタッチすることです[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 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']
于 2013-05-28T14:49:37.370 に答える