python(set、dict)
阿新 • • 發佈:2018-01-26
ash clas 順序 利用 enume () 默認值 相同元素 super
一、集合
它的元素是唯一的,並無序的。
1、集合定義
s = set()
s = {1, 2, 3}
2、集合的方法
update版本的集合運算是在原集合上進行修改,返回值為None。
- add()表示增加一個元素到集合。當添加一個已經存在的元素時,不會拋出異常。可hash的可以作為集合的元素,不可hash(list,set,bytearray dict)的不可以作為集合的元素。
- update()表示增加一個可叠代對象。
- remove()表示從集合中刪除一個存在的元素,否則拋出一個KeyError異常。
- discard()表示從集合中刪除一個元素,當元素不存在時不拋出異常。
- pop()表示從集合中隨機返回一個元素,並從集合中刪除此元素。當刪除一個空集合時,拋出一個KeyError異常。
- clear()表示清空所有元素。
- difference()表示不在另一個集合的所有元素,返回一個新集合。
- intersection()表示兩個集合的交集,返回一個新集合。
- union()表示兩個集合的並集,返回一個新集合。
- symmetric_difference()表示返回兩個集合不相交的元素,返回一個新集合。
- difference_update()表示在原集合修改,只保留第一個集合不相交的元素。
- intersection_update()表示在原集合修改,保留兩個集合的相同元素。
- issuperset()表示是否為超集。
- issubset()表示是否為子集。
- isdisjoint()表示兩個集體不相交。
二、字典
字典是一個鍵值對結構。它的Key必須是可hash的值並且是唯一的,value可以是任意的值。
1.字典定義
dt = dict()
dt = {}
2.下標操作
dt = {‘a‘:2,‘b‘:3}
dt[‘c‘]=4
3.字典的方法
- update()表示增加元素,如果增加的key相同是就修改原來key的值。它的參數可以是以下幾種情況:字典、由二元組構成的可叠代對象、關鍵字參數。
dt = {‘a‘:2,‘b‘:3} dt[‘c‘] = 4 dt.update([(‘g‘,3),(‘h‘,2)]) dt.update({‘f‘:3,‘e‘:2}) dt.update(u=22) print(dt) #結果:{‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22}
- pop()表示從字典中刪除指定的key,如果key不存在就拋出keyError異常,但可以指定默認值時則不拋出異常。
dt = {‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22} d = dt.pop(‘gg‘,-2) print(d) print(dt) #d結果:-2 #dt結果:{‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22}
- popitem()表示從字典中隨機刪除一個key,並返回一個鍵值對的元組。如果刪除一個空字典時拋出一個KeyError異常。
dt = {‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2, ‘u‘: 22} d = dt.popitem() print(d) print(dt) #d結果:(‘u‘, 22) #dt結果:{‘a‘: 2, ‘b‘: 3, ‘c‘: 4, ‘g‘: 3, ‘h‘: 2, ‘f‘: 3, ‘e‘: 2}
- clear()表示清空字典所有鍵值對。
- get()表示訪問指定鍵的值,並可以給默認值。
- setdefault()表示可以為某個key指定默認值。
三、字典的應用
- 字典可能通過keys()方法返回所有keys,也可以通過values()方法返回所有的值。
- 用len()方法統計字典的長度。
1、如何遍歷一個字典?
dt = {‘a‘:1,‘b‘:2,‘c‘:3} for k in dt.keys(): print(‘{}=>{}‘.format(k,dt[k]),end=‘ ‘) #結果:a=>1 b=>2 c=>3
dt = {‘a‘:1,‘b‘:2,‘c‘:3} for k,v in dt.items(): print(‘{}=>{}‘.format(k,v),end=‘ ‘)
#結果:a=>1 b=>2 c=>3
2、enumerate用法
enumerate()是python的內置函數,並返回的是一個enumerate對象。對於一個可叠代的(iterable)/可遍歷的對象(如列表、字符串),enumerate將其組成一個索引序列,利用它可以同時獲得索引和值。
lt = [1, 2, 3, 4, 5, 6] for k,v in enumerate(lt): print(‘{}=>{}‘.format(k,v),end=‘ ‘) #結果:0=>1 1=>2 2=>3 3=>4 4=>5 5=>6
enumerate還可以接收第二個參數,用於指定索引起始值。
lt = [1, 2, 3, 4, 5, 6] for k,v in enumerate(lt,1): print(‘{}=>{}‘.format(k,v),end=‘ ‘) #結果:1=>1 2=>2 3=>3 4=>4 5=>5 6=>6
3、OrderedDict的用法
collections模塊裏有一個OrderedDict,它可以記住字典中插入元素的先後順序。
from collections import OrderedDict ot = OrderedDict() ot[‘b‘]=2 ot[‘a‘]=1 ot[‘e‘]=4 ot[‘1‘]=1 ot[‘c‘]=3 ot[‘2‘]=2 for k,v in ot.items(): print(‘{}=>{}‘.format(k,v),end=‘ ‘)
lt = {‘a‘, ‘b‘, ‘c‘, ‘d‘} print(dict.fromkeys(lt,True)) #結果:{‘a‘: True, ‘b‘: True, ‘d‘: True, ‘c‘: True}
python(set、dict)