有没有办法将 python 中的多行字符串解析为列表列表
Is there a way to parse a multi-line-string in python into a list of lists
我正在尝试用多行转换类似这样的字符串:
"apple, orange, cat\n, 100, 200, 300\n, 0.3, 0.5, 0.6\n"
变成类似这样的嵌套列表,其中每个 word\number 是每一行的一个元素,它是更大列表的一个元素:
[['apple', 'orange','cat'],
['100', '200', '300'],
['0.3', '0.5', '0.6']]
我也在大规模工作,所以超过 3 行
我自己想不出来。请帮忙。
我已经尝试使用 .append、list()、普通旧 []、.split,我在 "\n"
和 ","
.
处拆分行
None 的那些工作和我得到的最接近的是单独的列表 numbers\words 但不知道如何拆分它们
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
您必须清理不需要的字符串
PS
您的字符串似乎是逗号分隔值 (CSV)。您可以利用 pandas 进行更好的操作
>>> 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
的说法列出理解
我正在尝试用多行转换类似这样的字符串:
"apple, orange, cat\n, 100, 200, 300\n, 0.3, 0.5, 0.6\n"
变成类似这样的嵌套列表,其中每个 word\number 是每一行的一个元素,它是更大列表的一个元素:
[['apple', 'orange','cat'],
['100', '200', '300'],
['0.3', '0.5', '0.6']]
我也在大规模工作,所以超过 3 行
我自己想不出来。请帮忙。
我已经尝试使用 .append、list()、普通旧 []、.split,我在 "\n"
和 ","
.
None 的那些工作和我得到的最接近的是单独的列表 numbers\words 但不知道如何拆分它们
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
您必须清理不需要的字符串
PS
您的字符串似乎是逗号分隔值 (CSV)。您可以利用 pandas 进行更好的操作
>>> 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
的说法列出理解