我是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()
字符串,但我不知道如何将新列表中的字符串转换成列表以便我获得正确的输出。
答案 0 :(得分:19)
>>> 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]]
答案 1 :(得分: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]]
注意: for python 3.x使用list(map(int,x.split(',')))
,因为map()
返回python 3.x中的地图对象