繁体   English   中英

有没有一种方法可以将python中的多行字符串解析为列表列表

[英]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.

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