8

私はPythonが初めてで、文字列をリストに変換することについて混乱しています。次のことを達成するために、リスト内にリストを作成する方法がわかりません。

元。

string = '2,4,6,8|10,12,14,16|18,20,22,24' 

split() を使用してデータ構造 my_data を作成しようとしています。

print my_data[1][2] #it should return 14

立ち往生:これは私が最初にしたことです:

new_list = string.split('|')  #['2,4,6,8', '10,12,14,16,', '18,20,22,24']

また、リストを分割できないことはわかっているのでsplit()、最初に文字列を取得しますが、正しい出力を得るために、新しいリスト内の文字列をリストに変換する方法がわかりません。

4

2 に答える 2

22
>>> text = '2,4,6,8|10,12,14,16|18,20,22,24'
>>> my_data = [x.split(',') for x in text.split('|')]
>>> my_data
[['2', '4', '6', '8'], ['10', '12', '14', '16'], ['18', '20', '22', '24']]
>>> print my_data[1][2]
14

たぶん、各数字 (まだ文字列) を に変換したい場合もありますint。その場合は、次のようにします。

>>> [[int(y) for y in x.split(',')] for x in text.split('|')]
[[2, 4, 6, 8], [10, 12, 14, 16], [18, 20, 22, 24]]
于 2012-08-10T05:06:37.633 に答える
2
>>> strs = '2,4,6,8|10,12,14,16|18,20,22,24'
>>> strs1=strs.split('|')
>>> [map(int,x.split(',')) for x in strs1] 
[[2, 4, 6, 8], [10, 12, 14, 16], [18, 20, 22, 24]]

注: python 3.xの場合list(map(int,x.split(',')))、 asmap()は python 3.x でマップ オブジェクトを返します。

于 2012-08-10T05:17:58.043 に答える