[英]Retrieving Key and Values from Dictionary
我使用了一個字典,如下所示:
streetno={
"1":"Sachin Tendulkar",
"2":"Sehawag",
"3":"Dravid",
"4":"Dhoni",
"5":"Kohli"
}
在此之后,我要求用戶輸入i / p。 然后,根據用戶輸入,我想從字典中檢索鍵或值。 我該如何實現呢? 我可以使用哪種方法來實現?
我可能對此有誤解,但看起來您可能正在要求用戶提供鍵或值。 如果他們給您一個鍵,您想返回值,如果他們給您一個值,您想返回鍵。
如果您要查找的是,那么最簡單的方法是將交換了值和鍵的條目添加到字典中,例如:
streetno={"1":"Sachin Tendulkar","2":"Sehawag","3":"Dravid","4":"Dhoni","5":"Kohli"}
streetno.update([(v, k) for k, v in streetno.items()])
這將導致以下字典:
>>> pprint(streetno)
{'1': 'Sachin Tendulkar',
'2': 'Sehawag',
'3': 'Dravid',
'4': 'Dhoni',
'5': 'Kohli',
'Dhoni': '4',
'Dravid': '3',
'Kohli': '5',
'Sachin Tendulkar': '1',
'Sehawag': '2'}
這樣,您可以獲取輸入並在字典中查找值,而無需進行任何其他檢查:
key = raw_input("Enter name or number (i/p):")
result = streetno.get(key)
如果您使用的是Python 3.x,則將raw_input()
替換為input()
。
您可以使用反向映射創建輔助字典:
In [4]: dict((v,k) for k,v in streetno.items())
Out[4]:
{'Dhoni': '4',
'Dravid': '3',
'Kohli': '5',
'Sachin Tendulkar': '1',
'Sehawag': '2'}
一旦知道了需要映射的方式,就可以使用原始字典或輔助字典進行查找。
如果用戶輸入“整數”,則可以顯式索引到字典中(即streetno[value]
)。 您的鍵似乎是字符串,因此您可以不必將其強制轉換為整數,也可以避免任何可能是字符串或整數的問題。 如果您的密鑰是整數,那么您將不得不進行一些轉換和修改-我將其留給您練習。
至於另一種方式,如果您想創建字典的反向映射(我認為您是這樣做的),那么最好看看這個SO問答 。 您將必須為其創建單獨的字典,然后使用該方法向后映射鍵值。
一小段代碼示例可幫助您入門...
streetno =
{
"1":"Sachin Tendulkar",
"2":"Sehawag",
"3":"Dravid",
"4":"Dhoni",
"5":"Kohli"
}
input=raw_input()
try:
print streetno[input]
except KeyError:
print [k for k, v in streetno.items() if v == input][0]
檢查此站點上的“詞典”部分以獲取文檔: http : //docs.python.org/tutorial/datastructures.html
streetno.keys()提供密鑰,您可以遍歷密鑰以獲取值:
偽代碼:
foreach key in streetno.keys() print "key: ", key, ", value: ", streetno[ key ]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.