我的 list :
city=['Venango Municiplaity', 'Waterford ship','New York']
预期结果:
city = ['Venango Municiplaity ', 'Waterford ship','New York','Venango','Waterford']
常用词:
common_words = ['ship','municipality']
扫描我的列表中的所有项目,去掉常用词并重新插入到同一个列表中,如预期结果所示。
我可以搜索包含常用词的项目,但不知道如何将其替换为空白并重新插入到我的列表中。
到目前为止我的代码:
for item in city:
if(any(x in s.lower() for s in item.split(' ') for x in common_words)) :
最佳答案
我编写了一个按预期工作的小代码:
city=['Venango Municiplaity', 'Waterford ship','New York']
comwo = ['ship','municipality']
for i, c in enumerate(city):
for ii in comwo:
if ii in c:
city.append(city[i].replace(ii,""))
print(city)
输出:
['Venango Municiplaity', 'Waterford ship', 'New York', 'Waterford ']
注意:
您创建的列表包含错误的拼写。
查看列表 city
的第一个元素 Venango
Municiplaity
和 common_words 的第二个元素 municipality
如果你想在单行中这样做:
[city.append(city[i].replace(ii,"")) for ii in comwo for i, c in enumerate(city) if ii in c]
我使用列表推导追加到列表city
。
编辑:
所以如果你还想替换单词后面的空格(如果有的话)那么我做了一个单独的代码:
city=['Village home', 'Villagehome','New York']
comwo = ['home']
for i, c in enumerate(city):
for ii in comwo:
if ii in c:
city.append(city[i].replace(" "+ii,"")) if city[i].replace(" "+ii,"") != city[i] else city.append(city[i].replace(ii,""))
print(city)
输出:
['Village home', 'Villagehome', 'New York', 'Village', 'Village']
如果你也需要这个单行:
[city.append(city[i].replace(" "+ii,"")) if city[i].replace(" "+ii,"") != city[i] else city.append(city[i].replace(ii,"")) for ii in comwo for i, c in enumerate(city) if ii in c]
关于python - 替换列表中的单词并附加到同一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51961712/