猿问

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

我有一个列表列表,我想从每行中删除双引号。

最初是这样的:

[['“牛奶,面包,饼干”'],['“面包,牛奶,饼干,玉米片”']]

修复我的代码后,我得到了这个:

[[“牛奶”,“面包”,“饼干”],[“面包”,“牛奶”,“饼干”,“玉米片”]]

我想有这样的

[['牛奶', '面包', '饼干'], ['面包', '牛奶', '饼干', '玉米片']]

我尽力了,但我无法弄清楚该怎么做。

我的代码如下所示:

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


慕尼黑8549860
浏览 273回答 2
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']]

largeQ

尝试使用列表理解: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']]
随时随地看视频慕课网APP

相关分类

Python
我要回答