3 回答
TA貢獻1865條經驗 獲得超7個贊
嘗試使用pandas。更具體地說,熊貓系列
import pandas as pd
numbers = {'a':2,'b':4,'c':1,'d':3}
numseries = pd.Series(numbers)
boolseries = numseries == 1
print(list(numseries.index[boolseries]))
輸出:['c']
對于如此少量的數據來說可能有點矯枉過正,但是如果您發現自己需要使用更大的數據集來執行此操作,則非常有用。它還處理滿足條件的元素不止一個的情況。
TA貢獻1796條經驗 獲得超4個贊
假設你看字典
d={'a':2,'b':3,'c':1,'d':1}
怎么樣:
for k in d.keys():
if d[k]==1:
print(k)
應該打印“c”和“d”
TA貢獻1842條經驗 獲得超13個贊
簡單的方法是測試每個變量:
a = 3
b = 4
c = 2
d = 1
x = 1
if 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 = 1
matching_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 crash
for itervar in locals():
if locals()[itervar] == x:
print(itervar)
這將打印所有與 x 具有相同值的變量。
添加回答
舉報
