首页 > 解决方案 > 需要为每个字符串创建一个数组数组

问题描述

所以我有看起来像这样的数据:

>> print data
"12345","string1","string2","string3","string4","string5"
"67890","string6","string7","string8","string9","string10"

我希望能够将每一行作为一个数组放入一个数组中。所以最后,我希望它看起来像这样:

>> print array_data
[["12345","string1","string2","string3","string4","string5"],
["67890","string6","string7","string8","string9","string10"]]

我尝试了一些事情,这是我得到的最接近的:

>> temp_list = []
>> for line in data.splitlines(): temp_list.append([line])
>> print temp_list
[['"12345","string1","string2","string3","string4","string5"'],
['"67890","string6","string7","string8","string9","string10"']]

我在每个数组周围都得到那个单引号。我应该如何继续获得我正在寻找的结果?

提前致谢!

标签: pythonarraysstringpython-2.7split

解决方案


您可以使用astsplit

设置

import ast
d = '''
"12345","string1","string2","string3","string4","string5"
"67890","string6","string7","string8","string9","string10"
'''
templist=[]

然后就

for line in d.strip().splitlines(): 
    templist.append([ast.literal_eval(st) for st in line.split(',')])
    

请注意,您还可以使用列表推导来制作单行器

templist = [[ast.literal_eval(st) for st in line.split(',')] for line in d.strip().splitlines()]

推荐阅读