python映像和集合類型

來源:互聯網
上載者:User

標籤:字典-映像   python   

字典

一、字典的概述
字典是python中唯一的映射類型,映射類型對象裡雜湊值和指向對象值是1:n的關係
字典對象是可變的,可以認為是一個容器類型,能儲存任意個python對象
字典對象和序列對象的區別:
1.儲存和訪問資料的方式不同
2.映射類型的資料是無序排序
3.序列類型只能是數字類型的鍵,映射類型可以是其他類型的鍵
4.映射類型不要求用數字值做索引從一個容器中取對應的資料。可以用鍵直接映射到值
(1).字典的建立和賦值
建立字典只需要把一個字典賦值給一個變數
如:dict={‘name’:’earth’,’port’:80}
2.可用Factory 方法dict()建立
如:fdict=dict(([‘x’,’1’],[‘y’,2]))
3.可用fromkeys()建立一個預設的字典
如:ddict ={}.fromkeys((‘x’,’y’),-1)

(2):字典的訪問
1.迴圈其索引值。如:
for key in dict.keys():
print ‘key=%s,value=%s’ %(key,dict[key])
2.用迭代器遍曆字典,只需要知道字典的名字即可,如
dict={‘name’:’zhang’,’port’:80}
for key in dict:
print ‘key=%s,value=%s’ %(key,dict[key])
3.獲得字典的某個元素值
dict[key] 如:dict[name]=’zhang’
若需檢查字典是否有某一個key 可以用in 或not in 等
(3):字典的更新
1.添加一個新資料項目或新元素
可以用字典變數名[key]=value;如 test={age:20.} test[name] =’student’ 則可得到tet={age:20,name:’student’}
2.改變一個已存在的資料項目
字典的修改和添加類似,可以用字典變數名[key]=新value
3.刪除一個已存在的資料項目
del dict[key]:刪除對應的索引值,若用字典變數名則刪除整個字典.如 del dict

dict.clear() :清空字典內容
pop():刪除對對應的值

二、映射類型操作符
(1).字典的鍵尋找操作符[]
1.鍵尋找操作符是唯一用於字典類型的操作符,和序列中的單一元素切片相似
2.字典是用鍵查詢,序列用索引做唯一參數或下標擷取

(2).成員關係操作(in not in)
in 和not in 檢查某個鍵是否在字典中
如:name in dict

三、內建函數和工廠函數
(1).標準類型函數
cmp()
type()
str(0
(2).映射相關函數
dict():用於建立字典,若不提供參數,則會產生空字典。
如 dict(zip((‘x’,’y’),(1,2))) => {‘x’:1,’y’:2}
或者 dict([‘x’,1],[‘y’,2]) => {‘x’:1,’y’:2}
len():返回所有元素的數目
如 dict={‘x’:1,’y’:2} 則len(dict)=2
hash()’

(3):內建方法
1.keys():返回一個列表包含字典所有的鍵 dict.keys() =>[‘x’,’y’]
2.values():返回一個列表,包含字典所有的值 如dict.values => [1,2]
3.items():返回一個列表包含所有含有(鍵,值)的元組 如dict.items() => [(‘x’,1),(‘y’,2)]
4.update() 如dict.update(dict2) 將字典dict2的key-value添加到字典dict 如dict2={‘x’:1,’y’:2,’z’:3} dict.update(dict2)
=> {‘x’:1,’y’:2,’z’:3}
5.setdefault() 和set()類似,若字典不存在key 由dict[key]=default為它賦值
6.clear() 刪除字典中所有元素 如 dict.clear() => {}
7.copy() 返回一個字典的副本 如dict2=dict.copy() => {‘x’:1,’y’:2}

四、字典的鍵
字典的鍵必須是不可變資料類型,如果用元組做鍵,那必須要保證元組內的對像也是不可變類型。可變資料類型對像不能做鍵。

集合

一、集合類型
set是不同元素組成的集合,python中的集合對象是一組無序排列的可hash的值。
集合分為兩種類型.可變集合(set)和不可變集合(frozenset)。可變集合可以刪除或添加元素,不可變集合不充許;可變集合不是可 雜湊的 不能用作字典的鍵,也不能用作其他集合中的元素,不可變集合真好相反
(1)、集合的建立
主要有set()和frozenset()方法
如:s=set(‘abcd’) => set([‘a’,’b’,’c’,’d’]); frozenset(‘BOOK’) =>frozenset([‘B’,’O’,’O’,’K’])

(2).集合的訪問
可以遍曆和檢查某項元素是否是一個集合的元素
如: ‘K’ in s
(3).更新集合
可以用集合內建方法進行添加,刪除集合的成員
如:
s.add(‘z’)
s.update(‘pypj’)
s-=set(‘pypj’)
s.remove()

(4).如何刪除集合中的成員和集合
A.集合超出其作用範圍
B.調用del將他們直接清除當前的名稱空間
二、集合類型操作符
set集合是無序的,不能通過索引和切片來做一些操作
三、內建函數和內建方法
(1).內建函數:
len():返回集合的基數
set()和frozenset()返回可變集合和不可變集合 若不提供參數則會產生空集合

(2).內建方法:可分為適用於所有的集合方法和適用於可變集合的方法
1.僅適用於可變集合的如下:
s.update(t) s.add(obj) s.remove(obj) s.discard(obj) s.pop():刪除集合s中的任意一個對象
s.clear() 刪除集合s中的所有元素

本節例子實現:

該例子用於類比管理登入系統

#!/usr/bin/env python#-*-coding:utf-8 -*-db = {}def newuser():    prompt = ‘login desired‘    while True:        name = raw_input(prompt)        if db.has_key(name):            prompt = ‘name taken, try anothers‘            continue        else:            break    pwd = raw_input(‘password:‘)    db[name] = pwddef 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)uitEnter choice:‘‘‘    done = False    while not done:        chosen = False        while not chosen:            try:                choice = raw_input(prompt).strip()[0].lower()            except (EOFError, KeyboardInterrupt):                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()

python映像和集合類型

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.