我有一个以元组为键的字典:
d = {
('John', 'Blue', 1): 100,
('Bill', 'Green', 5): 200,
('Paul', 'Blue', 4): 300,
('Bill', 'Green', 7): 400
}
是否可以提取那些匹配的键的值,比如 ('Bill', 'Green', _),这样输出将是 [200, 400 ]?
请您参考如下方法:
不要指望它会很快,但是:
search_key = ("Paul", "Blue")
values = [value for key, value in d.items() if search_key == key[:len(search_key)]]
将返回所有匹配的值。
编辑:通过将 key[:2] 替换为 key[:len(search_key)] 此解决方案也适用于只有一个值的键,例如 ("Bill",) 将返回键以“Bill”开头的所有值。
