python中的字典應用例項

2022-02-20 06:44:43 字數 2404 閱讀 4779

字典中的鍵使用時必須滿足一下兩個條件:

1、每個鍵只能對應乙個項,也就是說,一鍵對應多個值時不允許的(列表、元組和其他字典的容器物件除外)。當有鍵發生衝突時(即字典鍵重複賦值),取最後的賦值。

>>> myuniversity_dict = 

traceback (most recent call last):

file

"", line 1, in

nameerror: name

'chengdu'is

notdefined

>>> myuniversity_dict =

>>>myuniversity_dict

>>>

2、鍵必須是可雜湊的,像列表和字典這樣的可變型別,由於他們是不可雜湊的,所以不能作為字典的鍵。

為什麼呢?—— 直譯器呼叫雜湊函式,根據字典中鍵的值來計算儲存你的資料的位置。如果鍵是可變物件,可以對鍵本身進行修改,那麼當鍵發生變化時,雜湊函式會對映到不同的位址來儲存資料,這樣雜湊函式就不可能可靠地儲存或獲取相關的資料; 選擇可雜湊鍵的原因就是他們的值不能被改變。摘抄python 核心程式設計(第二版)的乙個例項如下:

#

!/usr/bin/env python

db ={}

defnewuser():

prompt = '

login desired:

'while

true:

name =raw_input(prompt)

ifdb.has_key(name):

prompt = '

name taken, try another\n

'continue

else

:

break

pwd = raw_input('

passwd: ')

db[name] =pwd

defolduser():

name = raw_input('

login: ')

pwd = raw_input('

passwd: ')

passwd =db.get(name)

if passwd ==pwd:

print

'welcome back

', name

else

:

print

'login incorrect

'def

showmenu():

prompt = """

(n)ew user login

(e)xisting user login

(q)uit

enter choice:

"""done =false

while

notdone:

chosen =false

while

notchosen:

try:

choice =raw_input(prompt).strip()[0].lower()

except

: choice = 'q'

print

'\nyou picked: [%s]

' %choice

if choice notin'

neq'

:

print

'invalid option, try again

'else

: chosen =true

if choice == '

q':done =true

if choice == 'n'

:newuser()

if choice == 'e'

:olduser()

if__name__ == '

__main__':

showmenu()

執行結果:

[root@localhost src]#

python usrpw.py

(n)ew user login

(e)xisting user login

(q)uit

enter choice:n

you picked: [n]

login desired: root

passwd: 1(n)ew user login

(e)xisting user login

(q)uit

enter choice:n

you picked: [n]

login desired: root

name taken,

try another

python 字典例項

python 內建了字典 dict 的支援,dict 全稱 dictionary,在其他語言中也 稱為 map,使用鍵 值 key value 儲存,具有極快的查詢速度 問題 統計列表中某個字元出現的次數 ll lily hanmei lilei lily hamei hamei lily 解題思路...

Python 字典應用

問題描述 給定當前的時間,請用英文的讀法將它讀出來。時間用時h和分m表示,在英文的讀法中,讀乙個時間的方法是 如果m為0,則將時讀出來,然後加上 o clock 如3 00讀作 three o clock 如果m不為0,則將時讀出來,然後將分讀出來,如5 30讀作 five thirty 時和分的讀...

python 字典例項學習

mydict print mydict key list mydict.keys 獲取所有的key print key value list mydict.values 獲取所有的value print value mydict 2 b 字典建立乙個新key value的鍵值段 print mydi...