1.集合python
2.字典shell
3.運算符優先級ssh
1.集合ide
建立:() set() 注意:建立空的集合要用set() 特色:元素惟一,無序 運算: &(交集) |(並集) -(差集) 方法: s.add(x) #添加單個元素 s.update() #添加多個元素 s.remove() #移除元素 s.clear() #清空集合 #集合建立 >>> se = {1,2,3} >>> print(type(se)) <class 'set'> >>> se = {1,2,2,3} #去重,惟一 >>> print(se) {1, 2, 3} >>> se = {1,'a',2,'b'} #無序 >>> se {1, 2, 'a', 'b'} #可hash的能放入集合 >>> hash([1,2]) Traceback (most recent call last): File "<pyshell#24>", line 1, in <module> hash([1,2]) TypeError: unhashable type: 'list' >>> hash((a,2)) Traceback (most recent call last): File "<pyshell#25>", line 1, in <module> hash((a,2)) NameError: name 'a' is not defined >>> hash((1,2)) 1299869600 >>> hash('qwe') -917773703 >>> a Traceback (most recent call last): File "<pyshell#28>", line 1, in <module> a NameError: name 'a' is not defined >>> a='I love python' >>> a 'I love python' >>> hash(a) -2061797837 >>> #定義空集合(工廠模式定義集合) >>> se = set() >>> print(type(se)) <class 'set'> #集合的運算 #屬於 >>> a {1, 2, 3, 4, 'a'} >>> 'a' in a True >>> 'b' not in a True #延伸 >>> se={1,2,3,4} >>> se2={3,4,5,6} >>> se < se2 #包含 False >>> se <= se2 #包含 False >>> se != se2 #不等於 True #並集(兩個集合相加並去重) >>> se1={1,2,3};se2={2,3,4} >>> se1|se2 {1, 2, 3, 4} #交集(取兩個集合重複的元素) >>> se1&se2 {2, 3} #差集(前面的集合減去後面的集合元素重複的部分) >>> se1-se2 {1} >>> se2-se1 {4} #與非集(取各自集合獨立的部分) >>> se1^se2 {1, 4} #集合的基本方法 查看集合的方法: >>> dir(se) ['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update'] #添加單個元素(添加單個元素) >>> se={1,2} >>> se.add(3) >>> print(se) {1, 2, 3} #添加多個元素(添加多個元素(可迭代的對象)) >>> se.update('4') >>> print(se) {1, 2, 3, '4'} >>> se.update('456') >>> print(se) {1, 2, 3, '6', '4', '5'} #移除元素(指定移除) >>> se.remove('5') >>> print(se) {1, 2, 3, '6', '4'} #隨機移除 >>> se.pop() 1 #清空集合 >>> se.clear() >>> print(se) set()
2.字典ui
注:是python中惟一的一個映射類型 建立:{key:value} #大括號建立字典的鍵時要加引號 dict{key=value} #括號裏賦值方式,名字=對象,不要引號 字典裏的鍵和值用‘:’隔開,一對鍵和值組成一個項,項和項之間用‘,’隔開 特色: 鍵惟一,重複會被從新賦值 無序 key必須遵循python命名規則 添加和取值 cidt[key]=value #key存在則修改該值,沒有則添加 屬性方法: .update({}) #在字典中添加多個項 .items() #返回字典的各個項 .keys() #返回字典的鍵 .values() #返回字典的值 .get(k) #若是鍵k在,返回k的值,不存在則返回None .get(k,x) #若是鍵k在,返回鍵k的值,不存在則返回x .pop(k) #返回並移除鍵k所對應的元素,不存在則拋出異常 .pop(k,x) #返回並移除鍵k所對應的元素,不存在則返回x 總結: key惟一,故能夠是數字,字符串,元祖 總結: 可變對象: list set dict 不可變對象: str tuple #字典 惟一的映射類型,遵循hash,必須是不可變的對象 #定義字典 >>> di={'w':123,'l':456,'x':789} >>> print(type(di)) <class 'dict'> >>> di=dict(_i=123) >>> di {'_i': 123} >>> print(type(di)) <class 'dict'> >>> di={1:123,2:234} >>> print(type(di)) <class 'dict'> >>> di1={'e':[123,456]} >>> type(di1) <class 'dict'> >>> di2={'e':(123,456)} >>> di3={'e':'123'} >>> type(di3) <class 'dict'> #定義空字典 >>> di1=dict() >>> print(type(di1)) <class 'dict'> #字典取值(利用鍵取值) >>> di[1] 123 >>> di[2] 234 #字典修改 >>> di[1]='qwe' >>> di {1: 'qwe', 2: 234} #添加key:value(在修改key值得時候,key存在即修改不然添加) >>> di[3]=890 >>> di {1: 'qwe', 2: 234, 3: 890} >>> di={'q':1,'w':2,('q','w'):122} >>> di {'q': 1, 'w': 2, ('q', 'w'): 122} #清空字典 >>> di.clear() >>> print(di) {} #查看字典的屬性方法 >>> dir(di) ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] #fromkeys #用給定的鍵創建新的字典,每一個鍵默認爲None(批量生產新的字典) >>> di.fromkeys({'a','b','c'}) {'b': None, 'c': None, 'a': None} #用給定的鍵創建新的字典,每一個鍵自定義爲123 >>> di.fromkeys({'a','b','c'},123) {'b': 123, 'c': 123, 'a': 123} >>> help(di.fromkeys) Help on built-in function fromkeys: fromkeys(iterable, value=None, /) method of builtins.type instance Returns a new dict with keys from iterable and values equal to value. #字典取值;值存在,則返回值,不存在默認返回None,也可自定義 >>> di {'w': 123, 'e': 456, 'r': 789} >>> di.get('w') 123 >>> di.get('q') >>> di {'w': 123, 'e': 456, 'r': 789} >>> di.get('q','我不存在') '我不存在' #items,在列表中以元組的形式顯示字典的每一項 >>> di.items() dict_items([('w', 123), ('e', 456), ('r', 789)]) >>> list(di.items()) #查看字典的每一項 [('w', 123), ('e', 456), ('r', 789)] #以列表的形式查看字典的全部鍵 >>> di.keys() dict_keys(['w', 'e', 'r']) #以列表的形式查看字典的全部值 >>> di.values() dict_values([123, 456, 789]) #pop,指定鍵,刪除對應的值。若是鍵不存在,能夠自定義返回值 >>> help(di.pop) Help on built-in function pop: pop(...) method of builtins.dict instance D.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised >>> di {'w': 123, 'e': 456, 'r': 789} >>> di.pop('e') 456 >>> di {'w': 123, 'r': 789} >>> di.pop('w','r') 123 >>> di {'r': 789} >>> di.pop('q','我不存在') '我不存在' #popitem, 隨機刪除字典某一項(不須要對象) >>> di {'r': 789, 'w': 123} >>> di {'r': 789, 'w': 123} >>> di.popitem() ('w', 123) >>> di {'r': 789} #相似get,存在返回值,不存在就更新到字典,對應的值默認爲None,也可自定義 >>> di.setdefault('r') 789 >>> di.setdefault('w',123) 123 >>> di {'r': 789, 'w': 123} >>> di.setdefault('q') >>> di {'r': 789, 'w': 123, 'q': None #將一個字典內容添加並更新覆蓋到原來的字典 >>> di {'r': 789, 'w': 123, 'q': None} >>> di1={'p':234,'q':123} >>> di.update(di1) >>> di {'p': 234, 'r': 789, 'w': 123, 'q': 123} >>> di={'x':[123,456]} >>> di {'x': [123, 456]} >>> di['w']=123 >>> di {'x': [123, 456], 'w': 123}
3.運算符code
算數運算符: +,-,*,/,%,**,// 賦值運算符: = += -= *= /= %= **= 比較運算符: == != > < >= <= 成員運算符: in , not in 身份運算符: is , is not 判斷兩個名字是否指向同一個對象,當id相同時返回True(==比較運算時判斷的值) 邏輯運算符: and or not and(與) 兩個條件都知足是才返回True or(或) 有一個條件知足了就返回True not(非) 取反 計算順序:默認,運算符優先級表決定了那個運算符在別的運算符以前計算。然而,若是你想改變它們的順序,你得使用圓括號 結合規律:運算符一般由左向右結合,及具備相同優先級的運算符按照從左向右的順序計算 ** #冪運算 = - * / % #算數運算符 < > <= >= #比較運算符 == != #比較運算符 = %= /= -= += *= **= #賦值運算符 is is not #身份運算符 in not in #成員運算符 not > and > or #邏輯運算符 >>> a=1;b=2 >>> a==b False >>> a!=b True >>> a is b False >>> a is not b True >>> a==1 and b==3 False >>> a==1 or b==3 True >>> not b==3 True >>> a==1 and not b==3 True