为了账号安全,请及时绑定邮箱和手机立即绑定

从 python 中的列表元素列表中删除双引号

从 python 中的列表元素列表中删除双引号

慕尼黑8549860 2022-08-25 14:44:00
我有一个列表列表,我想从每行中删除双引号。最初是这样的:[['“牛奶,面包,饼干”'],['“面包,牛奶,饼干,玉米片”']]修复我的代码后,我得到了这个:[[“牛奶”,“面包”,“饼干”],[“面包”,“牛奶”,“饼干”,“玉米片”]]我想有这样的[['牛奶', '面包', '饼干'], ['面包', '牛奶', '饼干', '玉米片']]我尽力了,但我无法弄清楚该怎么做。我的代码如下所示:def getFeatureData(featureFile):x=[]dFile = open(featureFile, 'r')for line in dFile:    row = line.split()    #row[-1]=row[-1].strip()    x.append(row)dFile.close()print(x)return x
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

您可以使用替换和列表理解。


list_with_quotes = [['"MILK,BREAD,BISCUIT"'], ['"BREAD,MILK,BISCUIT,CORNFLAKES"']]

list_without_quotes = [[l[0].replace('"','')] for l in list_with_quotes]

print(list_without_quotes)

>>out

>>[['MILK,BREAD,BISCUIT'], ['BREAD,MILK,BISCUIT,CORNFLAKES']]

编辑对不起,我做得很快,没有注意到我的输出并不完全是你想要的。下面是一个完成工作的 for 循环:


list_without_quotes = []

for l in list_with_quotes:

    # get list

    with_quotes = l[0]

    # separate words by adding spaces before and after comma to use split

    separated_words = with_quotes.replace(","," ")

    # remove quotes in each word and recreate list

    words = [ w.replace('"','') for w in separated_words.split()]

    # append list to final list

    list_without_quotes.append(words)

print(list_without_quotes)

>>out

>>[['MILK', 'BREAD', 'BISCUIT'], ['BREAD', 'MILK', 'BISCUIT', 'CORNFLAKES']]


查看完整回答
反对 回复 2022-08-25
?
largeQ

TA贡献2039条经验 获得超7个赞

尝试使用列表理解:


initial = [['"MILK,BREAD,BISCUIT"'], ['"BREAD,MILK,BISCUIT,CORNFLAKES"']]


final = [item[0].replace('"', '').split(',') for item in initial]


print(final)

输出:


[['MILK', 'BREAD', 'BISCUIT'], ['BREAD', 'MILK', 'BISCUIT', 'CORNFLAKES']]


查看完整回答
反对 回复 2022-08-25
  • 2 回答
  • 0 关注
  • 228 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信