python - 如何使用字典查找替换列表中的元素(列表作为字典中的值)
问题描述
使用我的代码,我想返回字典值列表中每个值的键。对于以下代码,我得到的category
返回列表比我的creditaccounts
列表长。期望的结果是:
category = ['supermarket', 'supermarket', 'unknown', 'self', 'unknown']
我与循环和“未知”元素作斗争。
creditaccounts = ['ALBERT HEIJN 1654 ROTTERDAM NLD', 'Jumbo 199730 TILBURG NLD','10-04-14 22:38 GELDAUTOMAAT', 'ING Bank', 'Desposit']
self = ['ING Bank', 'Van Bonusrenterekening']
bank = ['Kosten OranjePakket']
supermarket = ['ALBERT HEIJN 1654 ROTTERDAM NLD',
'Jumbo 199730 TILBURG NLD', 'Albert Heijn 1617',
'Jumbo Rotterdam ROTTERDAM NLD',
'DIRK VDBROEK FIL4014 ROTTERDAM']
dict_cat = {'self' : self
,'bank' : bank
, 'supermarket': supermarket}
category = []
for creditaccount in creditaccounts:
for cat, val in dict_cat.items():
if creditaccount in val:
category.append(cat)
else:
category.append('unknown')
category
解决方案
在您的内部循环中,您有一个 if-else 语句,而在 else 中,您将“未知”附加到您的列表中。如果条件不匹配,这会导致每次迭代都附加“未知” 。
尝试跳出循环和其他:
creditaccounts = ['ALBERT HEIJN 1654 ROTTERDAM NLD', 'Jumbo 199730 TILBURG NLD','10-04-14 22:38 GELDAUTOMAAT', 'ING Bank', 'Desposit']
self = ['ING Bank', 'Van Bonusrenterekening']
bank = ['Kosten OranjePakket']
supermarket = ['ALBERT HEIJN 1654 ROTTERDAM NLD',
'Jumbo 199730 TILBURG NLD', 'Albert Heijn 1617',
'Jumbo Rotterdam ROTTERDAM NLD',
'DIRK VDBROEK FIL4014 ROTTERDAM']
dict_cat = {'self' : self
,'bank' : bank
, 'supermarket': supermarket}
category = []
for creditaccount in creditaccounts:
for cat, val in dict_cat.items():
if creditaccount in val:
category.append(cat)
break
else:
category.append('unknown')
推荐阅读
- python - 某些形式是否禁止使用硒?
- php - 在 Mac OSX Mojave 10.14 上安装 pear 的问题
- laravel - 三向数据透视表获取用户所属的所有团队以及每个团队的角色
- bash - 如何在我的 bash 提示符中正确使用两个字符宽的表情符号?
- python - 创建静态列项
- r - R:记录链接问题,所有字段组合在 1 列中
- javascript - 使用带有 React JS 的箭头键递增和递减时获取重复项
- java - Apache HttpClient 5.0 HTTPS 代理:“没有隧道,除非连接”
- c - librdkafka C API Kafka Consumer 无法正确读取所有消息
- docusignapi - 品牌回调网址的签名是什么?