Python 键为元组时访问字典值

Python 键为元组时访问字典值,python,dictionary,Python,Dictionary,我是Python新手,有一个问题,我需要从字典中获取值,其中键是元组。例如: ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5} 我知道每个数字都出现在键中,我想访问键中数字为2的值(值将为3) 我可以获得有关如何访问此值的帮助吗?您可以使用以下理解“展平”词典: ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5} flat = {element: value for key, value in ones.items()

我是Python新手,有一个问题,我需要从字典中获取值,其中键是元组。例如:

ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}
我知道每个数字都出现在键中,我想访问键中数字为2的值(值将为3)

我可以获得有关如何访问此值的帮助吗?

您可以使用以下理解“展平”词典:

ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}

flat = {element: value for key, value in ones.items() for element in key}
现在,您可以通过
flat

从元组中获取任何键的值。您可以使用以下理解“展平”词典:

ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}

flat = {element: value for key, value in ones.items() for element in key}

现在,您可以通过
flat
从元组中获取任何键的值。您可以迭代个键并检查键中是否存在2

In [24]: ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}

In [25]: for k, v in ones.iteritems():
   ....:     if 2 in k:
   ....:         print v
   ....:         
3

您可以迭代个并检查键中是否存在2

In [24]: ones = {(1,2,6,10):3, (4,5,9):4, (3,7,8):5}

In [25]: for k, v in ones.iteritems():
   ....:     if 2 in k:
   ....:         print v
   ....:         
3

在查找键的一个子元素时,不能使用普通字典访问。您必须循环:

value_for_2 = next(ones[key] for key in ones if 2 in key)
将查找第一个匹配项(其中“first”是任意的,因为字典没有排序)

如果您的元组元素确实是唯一的,并且您需要执行多个查找,那么请首先转换字典以将元组元素用作键:

converted = {t_elem: value for key in ones for t_elem in key}
不要担心这里的值重复。值不需要是唯一的,您所做的只是存储引用;上述操作不会创建值的副本

现在,您可以再次使用快捷键查找:

value_for_2 = converted[2]

在查找键的一个子元素时,不能使用普通字典访问。您必须循环:

value_for_2 = next(ones[key] for key in ones if 2 in key)
将查找第一个匹配项(其中“first”是任意的,因为字典没有排序)

如果您的元组元素确实是唯一的,并且您需要执行多个查找,那么请首先转换字典以将元组元素用作键:

converted = {t_elem: value for key in ones for t_elem in key}
不要担心这里的值重复。值不需要是唯一的,您所做的只是存储引用;上述操作不会创建值的副本

现在,您可以再次使用快捷键查找:

value_for_2 = converted[2]
输出:

输出:


字典应包含您要使用的键。字典应包含您要使用的键。