簡體   English   中英

從字典中檢索鍵和值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM