6

リストのリストを整数のリストに変換する必要があります。

から:

L1 = [[1, 2, 3, 4], [3, 7, 1, 7], [0, 5, 6, 7], [9, 4, 5, 6]]

に:

L2 = [1234, 3717, 0567, 9456]

Pythonに0から始まる整数を認識させるにはどうすればよいですか? ケースのようにL2[2]

もう 1 つの質問は、リスト内の項目が順序付けられているかどうかを確認するにはどうすればよいかということです。

A = [1, 2, 6, 9] ---->True

これ以外:

A == sorted(A)

あなたたちは速いです。ありがとう!

4

4 に答える 4

5

最初の質問は、

L = [int("".join([str(y) for y in x])) for x in L]

残念ながら、整数は 0 で始まりません。これを行う方法はありません。

A == sorted(A)これを行うには、完全に良い方法であるかどうかを確認してください。

于 2013-08-30T03:58:53.567 に答える
4
L2 = [reduce(lambda x,y : 10 * x + y, l) for l in L1]

文字列を通過しないソリューションが必要な場合。

于 2013-08-30T04:01:42.447 に答える
1

質問 1 については、おそらく Python 3 で変換されますが、プレーンな .join では Python 2 で TypeError が返されます。試してください:

["".join(str(d) for d in x) for x in L]

...文字列表現の場合、または

[int("".join(str(d) for d in x)) for x in L]

(文字列表現は、フォーマットされた出力を除いて、先頭のゼロを保持する唯一の方法です...そして、それは出力ファイル/文字列への途中での文字列変換です。)

質問 2 の場合:all(A[i-1] < A[i] for i in range(1, len(A)))

>>> A = [1, 2, 6, 9]
>>> all(A[i-1] < A[i] for i in range(1, len(A)))
True
于 2013-08-30T04:05:40.550 に答える
0

できるよ:

L2 = [ int("1" + "".join(str(l) for l in ll1)) for ll1 in L1 ]

ゼロを保持して取得するには:

[11234, 13717, 10567, 19456]

1ただし、左端の sを取り除く必要があります。

于 2013-08-30T04:25:50.723 に答える