在尝试运行以下代码时:
temp3 = {
('EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD','EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-GBP'):'EURIBOR_EUR_1Y'
}
print (temp3.get('EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD'))
输出:
None
预期:
EURIBOR_EUR_1Y
答案 0 :(得分:0)
实际上正确的密钥是('EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD','EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-GBP')
因此,如果您尝试:
print(temp3.get(('EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD','EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-GBP')))
您将获得:
EURIBOR_EUR_1Y
答案 1 :(得分:0)
您没有使用字典的完整密钥。
尝试使用完整密钥
(temp3.get('EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD','EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-GBP'))
'EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-GBP'
答案 2 :(得分:0)
您期望>> l = Library()
>> l.book_manager.book_1
{'name': 'python'}
>> l.book_manager.book_2
<__main__.Book object at 0x7f56adf11278>
函数解压缩get
值并在元组内部进行搜索;那样行不通。
正确的方法是使用创建key
时使用的key
。
示例:
dict
哪个将输出密钥;要获取具有匹配键的所有值,可以使用以下命令:
temp3 = {
('EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD',
'EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-GBP'):'EURIBOR_EUR_1Y'
}
print(temp3.get(('EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD',
'EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-GBP')))
输出
def key_search(needle, haystack):
matches = []
for key, value in haystack.items():
if type(key) in [list, tuple, dict] and needle in key:
matches.append(value)
elif needle == key:
matches.append(value)
return matches
data = {
(1, 2, 3): 'heyyy',
(2, 1): 'heyyy there'
}
print(key_search(1, data))
['heyyy there', 'heyyy']
是您要查找的密钥,而大海捞针是您的数据。
答案 3 :(得分:0)
这就是你要看的
print(temp3.get([i for i in temp3 if 'EUR-EURIBOR-1Y-SWAPTION-PHYSICAL-ANNUAL-BOND-QUANTO-USD' in i][0]))
输出:
EURIBOR_EUR_1Y