从python中的列表中删除元素

时间:2019-02-03 20:55:46

标签: python python-3.x

我有一个形状如下的列表:

temp5=[]
for i in range(0,len(df)):
   temp5.append(df['text'][i].split())
df['each']=temp5
df['each']

结果是这样的:

enter image description here

现在我要删除上一个列表中的某些元素。我想检查上一个列表中的每个单词是否类似于以下列表,将其从中删除。第二个列表是这样的:

stopwords = open('stop_words.txt','r').read().split('\n')
print(stopwords)

enter image description here

现在,我编写了这段代码,以从第一个列表中删除每个列表的相同单词。但是我收到的只是一无所有。 你能帮我吗?

for k in range(0,len(df)):
    for j in df['each'][k][:]:
        for f in stopwords:
            if f==j:
                temp6.append(df['each'][k][:].remove(f))
                print(temp6)

1 个答案:

答案 0 :(得分:2)

如评论中所述,remove方法可就地删除,但是如果您想要更多的“ pythonic”功能,则工作代码应为

temp5=[]
for i in range(0,len(df)):
    temp5.append([x for x in df['text'][i].split() if x not in stopwords])

使用list comprehension,例如in this question,将创建过滤列表。或者,如果您坚持使用原始数据框作为输入,则可能是

temp5=[]
for i in range(0,len(df)):
    temp5.append([x for x in df['each'][i] if x not in stopwords])