繁体   English   中英

如何拆分字符串以创建嵌套列表?

[英]how do you split a string to create nested list?

你将如何分割一个字符串

'1,55,6,89,2|7,29,44,5,8|767,822,999'

在两个定界符',''|' 这样您就可以得到一个带有以下值的列表:

[[1, 55, 6, 89, 2], [7, 29, 44, 5, 8], [767, 822, 999]]

列表理解是完成此操作的最简洁的方法。

>>> s = '1,55,6,89,2|7,29,44,5,8|767,822,999'
>>> [[int(x) for x in ss.split(',')] for ss in s.split('|')]
[[1, 55, 6, 89, 2], [7, 29, 44, 5, 8], [767, 822, 999]]
my_data = [x.split(',') for x in input_string.split('|')]
my_data = [map(int, line.split(',')) for line in input_string.split('|')]
import re


regx = re.compile('(\A)|(\|)|(\Z)')

def repl(mat, di = {1:'[[', 2:'],[', 3:']]'} ):
    return di[mat.lastindex]

ss = '1,55,6,89,2|7,29,44,5,8|767,822,999'

my_data = eval( regx.sub(repl,ss) )

print my_data[1]
print my_data[1][2]

结果

[7, 29, 44, 5, 8]
44

我知道:有些人会尖叫不使用eval()

编辑

ss = '1,55,6,89,2|7,29,44,5,8|767,822,999' 
my_data = eval( ss.replace('|','],[').join(('[[',']]')))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM