我目前有一个看起来像这样的列表:
[["'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]
但这似乎并没有影响那些报价的前后内容。
任何帮助将不胜感激!谢谢!
答案 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)
- 创建一个空列表a2
- 重复列出一个列表(包含l个元素,又名列表)
- 创建a3空列表
- a的每个l元素都有1个项目,一个字符串(所以... l [0]可以得到它)
- 通过''分割字符串l [0],创建新的临时列表
- 重复此子列表,替换“ \'”,然后将结果项存储在a3中
- 在l [0] .split(“,”)循环的结尾,将a3列表存储为a2作为子列表
- 在主循环末尾,您具有所需的输出
this.data
答案 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']]