python3(元組,列表,集合,字典)
- 2020 年 1 月 12 日
- 筆記
1.列表 1)創建列表 數組:存儲同一種數據類型的集合 scores=[12,13,14] 列表:(打了激素的數組):可以存儲任意數據類型的集合
列表裡:可以存儲不同的數據類型
s=[1,4,5,'ty'] print s,type(s)
列表裏面也可以嵌套列表(列表:也是一種數據類型)
s=[1,4,2,[1,4,'aa']] print s,type(s)
2)列表的特性
# # 索引 # print service[0] # print service[-1] # # 切片 # print service[::-1] # 列表的翻轉 # print service[1:] # 除了第一個元素之外的其他元素 # print service[:-1] # 除了最後一個元素之外的其他元素 # # 重複 # print service * 3 # # 連接 # service1 = ['mysql','firewalld'] # print service + service1 # # 成員操作符 # print 'firewalld' in service # print 'firewalld' in service1 # print 'firewalld' not in service # for循環遍歷 # print '顯示服務'.center(50,'*') # for se in service: # print se
# 列表裡嵌套列表 service2 = [['http',80],['ssh',22],['ftp',21]] # 索引 print service2[0][1] print service2[-1][1] # 切片 print service2[:][1] print service2[:-1][0] print service2[0][:-1]
假定有下面這樣的列表: names = [『fentiao』, 『fendai』, 『fensi』, 『apple』] 輸出結果為:』I have fentiao, fendai, fensi and apple.』
names = ['fentiao', 'fendai', 'fensi', 'apple'] print 'I have ' + ','.join(names[:-1]) + ' and ' + names[-1]
3)列表的查看
service = ['http', 'ssh', 'ftp','ftp'] # 查看列表中元素出現的次數 print service.count('ssh') # 查看指定元素的索引值 print service.index('ssh')
4)列表的增加
# 1. print service + ['firewalld'] # 2.append:追加 追加一個元素到列表中 service.append('firewalld') print service # 3.extend:拉伸 追加多個元素到列表中 service.extend(['mysql', 'firewalld']) print service # 4. insert:在指定索引位置插入元素 service.insert(1,'samab') print service
5)列表的刪除
service = ['http', 'ssh', 'ftp'] # #1.如果pop()不傳遞值的時候,默認彈出最後一個元素 # print service.pop() # # pop()也可以傳遞索引值 # print service.pop(0) # 2.remove:刪除指定的元素 # service.remove('ssh') # print service # 3.del 關鍵字 從內存中刪除列表 # print service # del service # print service
6)列表的修改
service = ['http', 'ssh', 'ftp'] # 通過索引,重新賦值 service[0] = 'mysql' print service # 通過切片 print service[:2] service[:2] = ['samba','ladp'] print service
2.元組(tuple) 帶了緊箍咒的列表 元組本身不可變數據類型,沒有增刪改差 元組內可以存儲任意數據類型 1)元組的創建
t = (1,2,3,4.0,'star') print t,type(t)
# 元組裏面包含可變數據類型,可以間接修改元組的內容 t1 = ([1,2,3],4) t1[0].append(4) print t1 # 元組如果只有一個元素的時候,後面一定要加逗號,否則數據類型不確定 t2 = ('hello',) t3 = (1,) print type(t2),type(t3)
2)元組的特性 allowUsers = ('root','westos','fentiao') allowPasswd = ('123','456','789') # 索引 # 切片 print allowUsers[0] print allowUsers[-1] print allowUsers[1:] print allowUsers[2:] print allowUsers[:-1] print allowUsers[::-1] # 重複 print allowUsers * 3 # 連接 print allowUsers + ('fensi','fendai') # 成員操作符 print 'westos' in allowUsers print 'westos' not in allowUsers
3)元組的應用場景
# 1.變量交換數值 # a = 1 # b = 2 # b,a = a,b # # 先把(a,b)封裝成了一個元組(1,2) # # b,a = a,b # # b =(1,2)[0] a=(1,2)[1] # print a,b # 2.打印變量值 # name = 'westos' # age = 10 # t = (name,age) # print 'name: %s,age: %d' %(name,age) # print 'name: %s,age: %d' %t # 3.元組的賦值:有多少個元素,就用多少個變量接收 # t = ('westos',10,100) # name,age,score = t # print name,age,score scores = (100,89,45,78,65) # scoresLi = list(scores) # scoresLi.sort() # print scoresLi scores = sorted(scores) print scores
3.集合 1)集合的定義
# 集合裏面的元素是不可重複的 s = {1,2,3,1,2,3,4,5} print s,type(s) s1 = {1} print s1,type(s1) # 如何定義一個空集合 # s2 = {} # print type(s2) s3 = set([]) print s3,type(s3) # 集合的應用 li = [1,2,3,1,2,3] print list(set(li))
2)集合的特性 集合只支持 成員操作符 for循環
s = {1,2,3} #print s[0] # print s * 3 # print s + {5,4,6} print 1 in s for i in s: print i, for i,v in enumerate(s): print 'index: %s,value:%s' %(i,v)
3)集合常用的方法
s = {6, 7, 8, 1, 2, 3} # 增加 # s.add(10) # s.add(9) # print s # 增加多個元素 # s.update({4,5}) # print s # 刪除 # print s # s.pop() # print s # 刪除指定的元素 # s.remove(2) # print s # 交集 並集 差集 s1 = {1, 2, 3} s2 = {2, 3, 4} # 並集 print '並集:', s1.union(s2) print '並集:', s1 | s2 # 交集 print '交集:', s1.intersection(s2) print '交集:', s1 & s2 # 差集 # 可以理解為s1中有哪些s2中沒有的元素 print '差集:', s1.difference(s2) # s1-(s1&s2) print '差集:', s1 - s2 # 可以理解為s2中有哪些s1中沒有的元素 print '差集:', s2.difference(s1) # s2-(s1&s2) print '差集:', s2 - s1 # 對等差分:並集-交集 print '對等差分:', s1.symmetric_difference((s2)) print '對等差分:', s1 ^ s2 s3 = {1, 2} s4 = {1, 2, 3} # s3是否為s4的子集 print s3.issubset(s4) # s3是否為s4的超集 # 什麼是超集:如果s3中的每一個元素都在集合s4中,且 # s4中可能包含s3中沒有的元素,則s4就是s3的一個超集 print s3.issuperset(s4) # 兩個集合是不是不相交 print s3.isdisjoint(s4)
python中常用的內置方法
# 枚舉:返回索引值和對應的value值 # s = 'hello' # for i in s: # print i # for i,v in enumerate('hello'): # print i # print type(i) # print v # print type(v) # print str(i) + '---->' + v # s1 = 'abc' # s2 = '123' # # for i in zip(s1,s2): # #print i # print '-'.join(i)
4.字典 1)字典的定義 字典是一個無序的數據集合,使用print輸出字典的時候 通常輸出的順序和定義的順序是不一致的
# message = { # 'name':'tom', # 'age':18, # 'height':1.80, # 'weight':75.5 # } # print message # s = {} # print type(s) # s = { # 'fentiao':[100,90,80], # 'westos':[199,199,199] # } # print s d = dict() print d,type(d) d = dict(a=1,b=2) print d,type(d)
2)字典的增加
d = dict(a=1, b=2) # print d # # 添加或者更改key-value對 # d['g'] = 10 # print d # d['a'] = 10 # print d """ update: 如果key值存在,更新value值 如果key值不存在,添加key-value值 """ # d.update({'a':4,'f':1}) # print d """ setdefault 如果key值已經存在,不做修改 如果key值不存在,添加key-value值 """ d.setdefault('a',10) print d
3)字典的刪除
d = dict(a=1, b=2,c=3) # pop:彈出指定的key-value值 # d.pop('a') # print d # print d # d.popitem() # print d del d['a'] print d
4)字典的修改和查看
service = { 'http':80, 'mysql':3306 } # 查看字典裏面所有的key值 print service.keys() # 查看字典裏面所有的value值 print service.values() # 查看字典裏面所有的key-value值 print service.items() # 遍歷 for k,v in service.items(): print k,'---->',v for k in service: print k,'----->',service[k] # print service['https'] # if 'https' in service: # print service['https'] # else: # print 'key not exist' """ get方法獲取指定key對應的value值 如果key值存在,返回對應的value值 如果key值不存在,默認返回None,如果需要指定返回值,傳值即可 """ print service.get('http','key not exist')

