python - 替换列表中的单词并附加到同一个列表
问题描述
我的列表:
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 ']
笔记:
您创建的列表包含不正确的拼写。
查看 listcity
的第一个元素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 - 用户登录后调用 displayMenu() 函数
- c# - 将 C# WebApp 从 Azure AppService 连接到在另一个 Azure VM 中运行的应用程序
- java - 单击 RecyclerView 中的项目时如何获取详细信息?
- awk - 将 awk 操作应用于特定列
- docker - 这个 docker 命令中的“docker-compose up -d” “-d” 有什么作用
- python - 依靠 pandas 的滚动时间窗口
- github - github问题反馈,如微软文档
- python - print() 的无效关键字参数
- python - 使用 https 的 Python 请求 - 证书验证失败
- angular - 如何使用动态提供程序禁用 Angular 动画?