嵌套列表-从内部列表中删除报价

时间:2019-08-01 04:43:32

标签: python pandas

我目前有一个看起来像这样的列表:

[["'MILK','EGGS','BUTTER','CHEESE'"],["'MILK', 'BUTTER', 'EGGS'"],["'EGGS', 'BUTTER'"]]

我希望得到这样的结果:

[['MILK','EGGS','BUTTER','CHEESE'],['MILK', 'BUTTER', 'EGGS'],['EGGS', 'BUTTER']]

它是使用以下方法从单列数据框中创建的:

value_list = value_df.values.tolist()

我试图删除列表周围的双引号不可用-我尝试使用以下方式访问子列表:

for sublist in value_list:
    sublist[:] = [s.strip('"') for s in sublist] 

但这似乎并没有影响那些报价的前后内容。

任何帮助将不胜感激!谢谢!

5 个答案:

答案 0 :(得分:1)

任何时候,当我谈论删除字符串中的引号时,ast.literal_eval都浮现在我的脑海。库是为执行任务而生的。

import ast
l = [["'MILK','EGGS','BUTTER','CHEESE'"],["'MILK', 'BUTTER', 'EGGS'"],["'EGGS', 'BUTTER'"]]

newL = [list(ast.literal_eval(i[0])) for i in l]
print(newL)

[['MILK', 'EGGS', 'BUTTER', 'CHEESE'],
 ['MILK', 'BUTTER', 'EGGS'],
 ['EGGS', 'BUTTER']]

答案 1 :(得分:0)

您可以尝试以下简单方法:

list_a = [["'MILK','EGGS','BUTTER','CHEESE'"],["'MILK', 'BUTTER', 'EGGS'"],["'EGGS', 'BUTTER'"]]
list_b = []
for a in list_a:
    for aa in a:
        list_b.append(aa.replace("'","").split(","))
print(list_b)

或更复杂的代码,尽管使用相同的方法:

list_a = [["'MILK','EGGS','BUTTER','CHEESE'"],["'MILK', 'BUTTER', 'EGGS'"],["'EGGS', 'BUTTER'"]]
list_b = [aa.replace("'","").split(",") for a in list_a for aa in a]
print(list_b)

如果运行代码,输出将如下所示:

[['MILK', 'EGGS', 'BUTTER', 'CHEESE'], ['MILK', ' BUTTER', ' EGGS'], ['EGGS', ' BUTTER']]

答案 2 :(得分:0)

abc = [["'MILK','EGGS','BUTTER','CHEESE'"],["'MILK', 'BUTTER', 'EGGS'"],["'EGGS', 'BUTTER'"]]
final_list=[]
[final_list.append(a.replace("'","").split(",")) for i in abc for a in i]
print(final_list)
[['MILK', 'EGGS', 'BUTTER', 'CHEESE'], ['MILK', ' BUTTER', ' EGGS'], ['EGGS', ' BUTTER']]

答案 3 :(得分:0)

  
      
  1. 创建一个空列表a2
  2.   
  3. 重复列出一个列表(包含l个元素,又名列表)
  4.   
  5. 创建a3空列表
  6.   
  7. a的每个l元素都有1个项目,一个字符串(所以... l [0]可以得到它)
  8.   
  9. 通过''分割字符串l [0],创建新的临时列表
  10.   
  11. 重复此子列表,替换“ \'”,然后将结果项存储在a3中
  12.   
  13. 在l [0] .split(“,”)循环的结尾,将a3列表存储为a2作为子列表
  14.   
  15. 在主循环末尾,您具有所需的输出
  16.   
this.data

enter image description here

答案 4 :(得分:0)

应该遵循。

lst = [["'MILK','EGGS','BUTTER','CHEESE'"],["'MILK', 'BUTTER', 'EGGS'"],["'EGGS', 'BUTTER'"]]

[list(eval(i[0])) for i in lst]

输出:

[['MILK', 'EGGS', 'BUTTER', 'CHEESE'],
 ['MILK', 'BUTTER', 'EGGS'],
 ['EGGS', 'BUTTER']]