假设你看字典 d={'a':2,'b':3,'c':1,'d':1}怎么样: for k in d.keys(): if d[k]==1: print(k)应该打印“c”和“d”
简单的方法是测试每个变量:a = 3b = 4c = 2d = 1x = 1if a == x: print('a')elif b == x: print('b')elif c == x: print('c')elif d == x: print('d')只要变量的数量相当少,就可以做到这一点。如果这是您经常需要做的事情,我建议您改用不同的数据结构(例如 a dict):my_dict = {'a': 3, 'b': 4, 'c': 2, 'd': 1}x = 1matching_elements = [k for k in my_dict if my_dict[k] == x]print(matching_elements[0])如果多个变量(或者,在这种dict情况下,键)具有相同的值,第一个方法将打印第一次出现,而第二个方法可能会或可能不会返回第一个取决于天堂的对齐方式,因为dicts 没有被排序(它将返回虽然只有一个)。如果您想打印所有具有该值的变量,您可以将所有变量替换为elif,if或者,在第二种情况下,print(matching_elements).hacky方式(会回来咬你)是这样的:itervar = None # If this does not exist the following will crashfor itervar in locals(): if locals()[itervar] == x: print(itervar)这将打印所有与 x 具有相同值的变量。