Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可用于返回值的字典类型:key_Python_Dictionary_Key - Fatal编程技术网

Python 可用于返回值的字典类型:key

Python 可用于返回值的字典类型:key,python,dictionary,key,Python,Dictionary,Key,我正在开发一个程序,其中我有一个字典dict['key']=value,但我也希望能够使用dict['value'],并让它返回键 Python中有这样的可逆数据结构吗 我想在我的字典中添加所有相反的内容,因为我所有的关系都是1:1,但我不认为这会有多大的效率,因为我会有两倍于我需要的条目。对于像这样的单个反向查找,只需使用 [k for k in dict if dict[k] == v] 如果您通常使用这种回溯,通常的方法是创建一个反向字典(请注意,在这种情况下,每个值超过一个键将导致有损

我正在开发一个程序,其中我有一个字典
dict['key']=value
,但我也希望能够使用
dict['value']
,并让它返回

Python中有这样的可逆数据结构吗


我想在我的字典中添加所有相反的内容,因为我所有的关系都是1:1,但我不认为这会有多大的效率,因为我会有两倍于我需要的条目。

对于像这样的单个反向查找,只需使用

[k for k in dict if dict[k] == v]
如果您通常使用这种回溯,通常的方法是创建一个反向字典(请注意,在这种情况下,每个值超过一个键将导致有损过程)——

最后,您也可以考虑将数据处理为长度为2的元组,如

data = [(a, b), (c, d)]

如果一个项目不依赖于另一个项目。

我不知道python的标准集合库中有任何双向映射,但您可以查看包:


有人问过可能重复的问题,我认为您唯一的选择是双条目。@LukasR如果以前有人问过,正确的步骤是将其标记为重复。这里可能重复的问题是键应该是可散列的,而值可以是任何类型的(例如,
列表
,它不可散列,不能用作键)
data = [(a, b), (c, d)]
>>> from bidict import bidict
>>> b = bidict(k='v')
>>> b['k']
'v'
>>> b.inv['v']
'k'