python中的字典使用分享
字典中的鍵使用時(shí)必須滿(mǎn)足一下兩個(gè)條件:
1、每個(gè)鍵只能對(duì)應(yīng)一個(gè)項(xiàng),也就是說(shuō),一鍵對(duì)應(yīng)多個(gè)值時(shí)不允許的(列表、元組和其他字典的容器對(duì)象除外)。當(dāng)有鍵發(fā)生沖突時(shí)(即字典鍵重復(fù)賦值),取最后的賦值。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'Chengdu' is not defined
>>> myuniversity_dict = {'name':'yuanyuan', 'age':18, 'age':19, 'age':20, 'schoolname':'Chengdu', 'schoolname':'Xinxiang'}
>>> myuniversity_dict
{'age': 20, 'name': 'yuanyuan', 'schoolname': 'Xinxiang'}
>>>
2、鍵必須是可哈希的,像列表和字典這樣的可變類(lèi)型,由于他們是不可哈希的,所以不能作為字典的鍵。
為什么呢?—— 解釋器調(diào)用哈希函數(shù),根據(jù)字典中鍵的值來(lái)計(jì)算存儲(chǔ)你的數(shù)據(jù)的位置。如果鍵是可變對(duì)象,可以對(duì)鍵本身進(jìn)行修改,那么當(dāng)鍵發(fā)生變化時(shí),哈希函數(shù)會(huì)映射到不同的地址來(lái)存儲(chǔ)數(shù)據(jù),這樣哈希函數(shù)就不可能可靠地存儲(chǔ)或獲取相關(guān)的數(shù)據(jù); 選擇可哈希鍵的原因就是他們的值不能被改變。摘抄python 核心編程(第二版)的一個(gè)實(shí)例如下:
#!/usr/bin/env python
db = {}
def newuser():
prompt = 'login desired: '
while True:
name = raw_input(prompt)
if db.has_key(name):
prompt = 'name taken, try another\n'
continue
else:
break
pwd = raw_input('passwd: ')
db[name] = pwd
def olduser():
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 not done:
chosen = False
while not chosen:
try:
choice = raw_input(prompt).strip()[0].lower()
except:
choice = 'q'
print '\nYou picked: [%s]' % choice
if choice not in '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()
運(yùn)行結(jié)果:
[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
相關(guān)文章
python中類(lèi)變量與成員變量的使用注意點(diǎn)總結(jié)
python 的類(lèi)中主要會(huì)使用的兩種變量:類(lèi)變量與成員變量。類(lèi)變量是類(lèi)所有實(shí)例化對(duì)象共有的,而成員變量是每個(gè)實(shí)例化對(duì)象自身特有的。下面這篇文章主要給大家介紹了在python中類(lèi)變量與成員變量的一些使用注意點(diǎn),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-04-04
Python中使用logging和traceback模塊記錄日志和跟蹤異常
今天小編就為大家分享一篇關(guān)于Python中使用logging和traceback模塊記錄日志和跟蹤異常,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-04-04
scrapy處理python爬蟲(chóng)調(diào)度詳解
在本篇文章里小編給大家整理的是一篇關(guān)于scrapy處理python爬蟲(chóng)調(diào)度的相關(guān)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2020-11-11
小學(xué)生也能看懂的python語(yǔ)法之循環(huán)語(yǔ)句精解
這篇文章主要介紹了詳解Python中的條件,循環(huán)語(yǔ)句,包括while循環(huán)for循環(huán),循環(huán)語(yǔ)句是學(xué)習(xí)各個(gè)編程語(yǔ)言的最基本的基礎(chǔ)知識(shí),需要的朋友可以參考下2021-09-09
分享8點(diǎn)超級(jí)有用的Python編程建議(推薦)
這篇文章主要介紹了分享8點(diǎn)超級(jí)有用的Python編程建議(推薦),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
python 實(shí)現(xiàn)UTC時(shí)間加減的方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)UTC時(shí)間加減的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
django實(shí)現(xiàn)HttpResponse返回json數(shù)據(jù)為中文
這篇文章主要介紹了django實(shí)現(xiàn)HttpResponse返回json數(shù)據(jù)為中文,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03

