将一对列表转换为列表列表

时间:2018-03-22 09:24:07

标签: python-3.x list split

我的问题很简单我想将几个列表转换为列表列表:

以下是数据示例:

 ['DDD1', 'EEE1', 'AAA1']
 ['DDD2', 'EEE2', 'AAA2']
 ['DDD3', 'EEE3', 'AAA3']
 ['DDD4', 'EEE4', 'AAA4'] 

我试过这段代码:

lignes = data.split('\n')
lst =[[i]  for i in lignes]  
print(lst)

它给了我这个结果:

[["['DDD1', 'EEE1', 'AAA1']"],
 ["['DDD2', 'EEE2', 'AAA2']"],
 ["['DDD3', 'EEE3', 'AAA3']"],
 ["['DDD4', 'EEE4', 'AAA4']"]]

我想要的结果是:

[['DDD1', 'EEE1', 'AAA1'],
 ['DDD2', 'EEE2', 'AAA2'],
 ['DDD3', 'EEE3', 'AAA3'],
 ['DDD4', 'EEE4', 'AAA4']] 

如果您有任何想法我可以如何解决这个问题,请帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

假设您的数据只是表格中的长字符串:

data = """['DDD1', 'EEE1', 'AAA1']
['DDD2', 'EEE2', 'AAA2']
['DDD3', 'EEE3', 'AAA3']
['DDD4', 'EEE4', 'AAA4']"""

首先,您可以将其拆分为单独的行,然后再次使用拆分以一种格式输出,该格式允许您从每一行创建列表,最后追加到您要创建的列表:

data_splt = data.split('\n')
output = []
for i in range(len(data_splt)):
    temp = data_splt[i].split("'")[1:6:2]
    output.append(temp)

输出:

[['DDD1', 'EEE1', 'AAA1'],
 ['DDD2', 'EEE2', 'AAA2'],
 ['DDD3', 'EEE3', 'AAA3'],
 ['DDD4', 'EEE4', 'AAA4']]

编辑: 甚至更好,使用列表理解:

data_splt = data.split('\n')
new = [data_splt[i].split("'")[1:6:2] for i in range(len(data_splt))]