[英]Is there a way to parse a multi-line-string in python into a list of lists
我正在尝试用多行代码将类似于此字符串的内容转换为:
“苹果,橙,猫\\ n,100、200、300 \\ n,0.3、0.5、0.6 \\ n”
变成这样的嵌套列表,其中每个单词\\数字是每一行的元素,也是更大列表的元素:
[['apple', 'orange','cat'],
['100', '200', '300'],
['0.3', '0.5', '0.6']]
我也在大规模地工作,所以超过3行
我不能自己弄清楚。 请帮忙。
我已经尝试过使用.append,list(),plain old [] 、. split来分隔"\\n"
和","
。
这些都不起作用,我得到的最接近的是单独的数字\\单词的列表,但不知道如何拆分它们
lst = [ [s.strip() for s in line.split(',') if s] for line in text.split('\n') if line]
>>> s = "apple, orange, cat\n, 100, 200, 300\n, 0.3, 0.5, 0.6\n"
>>> line_split = s.split('\n')
>>> line_split
['apple, orange, cat', ', 100, 200, 300', ', 0.3, 0.5, 0.6', '']
>>> word_split = [line.split(',') for line in line_split]
>>> word_split
[['apple', ' orange', ' cat'], ['', ' 100', ' 200', ' 300'], ['', ' 0.3', ' 0.5', ' 0.6'], ['']]
要么
[line.split(',') for line in s.split('\n')] // One Liner
您必须清理不需要的字符串
聚苯乙烯
您的字符串似乎是逗号分隔的值(CSV)。 您可以利用熊猫进行更好的操控
>>> import pandas as pd
>>> pd.read_csv(pd.compat.StringIO(s))
apple orange cat
NaN 100.0 200.0 300.0
NaN 0.3 0.5 0.6
str="your data string"
list=str.split('\n')
for i in range(len(list)):
list[i]=list[i].split(',')
print (list)
这是一个更大,更容易理解的方法...或者您可以按照@ user8426627的说明列出理解
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.