python - 如何删除列表中元素的国家/地区
问题描述
我有一个包含不同公司名称的列表,我想从该列表的元素中删除所有国家/地区的名称。我正在使用 pycountry 导入国家列表。
comps = ['XGLOW Japan', 'GOGO China', 'DALO germany', 'XTTTIndia']
countries_list = []
for p in pycountry.countries:
p = p.name.lower()
countries_list.append(p)
remove_countries = [i for e in countries_list for i in comps if e in i]
这让我得到了包含国家名称的公司列表,但现在我不完全确定如何删除它们。
这是如何为单个元素执行此操作的示例。
example = 'DoNow China'.lower()
for p in pycountry.countries:
if p.name.lower() in example:
print(example.replace(p.name.lower(), '')) # gives me "donow"
期望的输出:
comps
['XGLOW', 'GOGO', 'DALO', 'XTTT']
解决方案
您可以使用正则表达式:
import re
import pycountry
# create a pattern that will match any country in pycountry.countries
names = '|'.join([country.name for country in pycountry.countries])
pattern = re.compile(names, re.UNICODE | re.IGNORECASE)
companies = ['XGLOW Japan', 'GOGO China', 'DALO germany', 'XTTTIndia']
# apply sub for each company
result = [pattern.sub("", company).strip() for company in companies]
print(result)
输出
['XGLOW', 'GOGO', 'DALO', 'XTTT']
这种方法将保留字符串的大小写。
推荐阅读
- nginx - 403 显示与 WWW [Nginx]
- python - 每 n 对 n-2 进行 Python 列表切片
- python - 将 cv2.selectROI 数据导出为 JSON,python 3.6
- ios - Mapkit - Swift4 - 如何禁用自动缩放
- jsonschema - 互斥属性组合
- microsoft-cognitive - Azure 计算机视觉 API 返回默认值
- javascript - 来自数据库的 Gmap 信息窗口,里面有一个按钮
- javascript - 未提交引导模式表单
- php - 无法使用 php 代码计算小数点后 2 位的金额
- vb.net - 屏幕旋转问题,错误“app.givb”