Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/356.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 如何检查元组键是否包含字典中的元素_Python_Python 3.x_Dictionary_Tuples - Fatal编程技术网

Python 如何检查元组键是否包含字典中的元素

Python 如何检查元组键是否包含字典中的元素,python,python-3.x,dictionary,tuples,Python,Python 3.x,Dictionary,Tuples,我正在寻找一种可以做类似事情的手术: dict[ ( tuple[0] , _ ) ] 字典包含元组作为键 如何检查字典是否包含一个值,其中元组键的第一部分为特定值,第二部分为任何值?对于字典d x = # value of interest for key in d.keys(): if key[0] == x: #do stuff 但正如评论中所指出的,这不是一种非常有效的做事方式 #Dictionary with tuples as keys dict_wit

我正在寻找一种可以做类似事情的手术:

dict[ ( tuple[0] , _ ) ]
字典包含元组作为键

如何检查字典是否包含一个值,其中元组键的第一部分为特定值,第二部分为任何值?

对于字典d

x = # value of interest
for key in d.keys():
    if key[0] == x:
        #do stuff

但正如评论中所指出的,这不是一种非常有效的做事方式

#Dictionary with tuples as keys
dict_with_tup = dict([((1,2),3), ((1,4),2), ((2,5),7)])

#value that you wanna find (just the first value of the tuple)
x = 1

#filtered dict based on that value
{k:v for k,v in dict_with_tup.items() if k[0]==x}

为了有效地使用字典,关键应该是你想用来查找资料的东西。因此,在本例中,键应该是元组的第一部分。否则,您将遍历所有键以检查每个键,这将失去字典的优势。请提供一个示例,问题不清楚。您能否提供一个MRE@khelwood,您所说的元组的第一部分是什么意思?这是否意味着要将字典键转换为单个值?您说过要查找具有“特定值作为第一部分”的键。第一部分应该是你用的钥匙。如果您想在不知道键的第二部分的情况下在字典中查找内容,那么该第二部分根本不应该包含在键中。不是真的,您需要搜索,搜索意味着迭代。你能做的最好的就是像我一样使用列表理解,这是超快速的。
{(1, 2): 3, (1, 4): 2}