我正在尝试比较字典中所有字符串的项目,并忽略大小写。下面是我如何尝试使用它的一个例子-它不起作用,但我希望发生的是将Ad,aB和RD打印出来。相反,当它到达'ab'时,我得到一个关键字错误,因为我没有正确使用语法。任何关于我如何做到这一点的帮助都将不胜感激。
test_vals = ['ad', 'ab', 'rD']
test_dict = {'ad': 'Ad', 'Ab': 'aB', 'RD': 'RD'}
for item in test_vals:
print(test_dict[item.casefold()])
字符串
2条答案
按热度按时间ulydmbyx1#
如果您要通过折叠式查找钥匙,那么钥匙最好是折叠式的。您可以将
dict
替换为具有折叠式钥匙的钥匙,例如:字符串
或增加它与折叠的变体(因此无论是原始形式或casefolded形式可以查找:
的
关键是,如果键在
dict
中还没有采用常见的大小写折叠形式,那么就没有任何解决方案可以从dict
的特性中获益,即使用折叠键查找dict
中的展开键,哈希Map不能做这样的事情。velaa5lx2#
代码:
字符串
打印结果
的
列表解析遍历test_dict中的键。
key.lower()将当前键转换为小写,以便进行不区分大小写的比较。
map(str.lower,test_vals)将test_vals中的所有元素都转换为numb,以便进行不区分大小写的匹配。
map(str.lower,test_vals)中的条件key.lower()检查test_vals中任何元素的新版本中是否存在当前键的新版本。
如果条件为真,则相应的值test_dict[key]将包含在结果列表中。