python 列表、元組、字符串、字典、集合、return等梳理
阿新 • • 發佈:2017-05-20
插入 deepcopy fda 刪除 style import pan 查詢 inf
有必要對這些數據類型及操作做下梳理:
1.列表:增刪改查
a.查找:
1 >>> names=["zhang","wang","li","zhao"] 2 #列表天生具有下標,基於下標0,1,2,...進行查找 3 >>> names[1] 4 ‘wang‘ 5 #列表的切片,即也是基於下標進行操作 6 >>> names[1:3] 7 [‘wang‘, ‘li‘] 8 >>> names[-1:] 9 [‘zhao‘] 10 >>> names[:3] 11 [‘zhangView Code‘, ‘wang‘, ‘li‘] 12 >>> names[1:] 13 [‘wang‘, ‘li‘, ‘zhao‘] 14 #基於列表中的值找下標 15 >>> print(names.index(‘li‘)) 16 2 17 >>> print(names[names.index(‘li‘)]) 18 li 19 #基於for循環查找列表值 20 >>> for i in names: 21 ... print(i) 22 ... 23 zhang 24 wang 25 li 26 zhao
b.修改
1 >>> names=["zhang","wang","li","zhao"] 2 >>> names.append("Sun") 3 >>> names 4 [‘zhang‘, ‘wang‘, ‘li‘, ‘zhao‘, ‘Sun‘] 5 >>> names.insert(1,‘qian‘) 6 >>> names 7 [‘zhang‘, ‘qian‘, ‘wang‘, ‘li‘, ‘zhao‘, ‘Sun‘] 8 >>> names[2] = ‘gaoView Code‘ 9 >>> names 10 [‘zhang‘, ‘qian‘, ‘gao‘, ‘li‘, ‘zhao‘, ‘Sun‘]
c.刪除
1 >>> names 2 [‘zhang‘, ‘qian‘, ‘gao‘, ‘li‘, ‘zhao‘, ‘Sun‘] 3 >>> names.remove(‘zhang‘) 4 >>> names 5 [‘qian‘, ‘gao‘, ‘li‘, ‘zhao‘, ‘Sun‘] 6 >>> del names[1] 7 >>> names 8 [‘qian‘, ‘li‘, ‘zhao‘, ‘Sun‘] 9 >>> names.pop() 10 ‘Sun‘ 11 >>> names.pop(1) 12 ‘li‘ 13 >>> names 14 [‘qian‘, ‘zhao‘]View Code
d.增加
1 >>> names 2 [‘qian‘, ‘zhao‘] 3 >>> names.append(‘Sun‘) #追加 4 >>> names 5 [‘qian‘, ‘zhao‘, ‘Sun‘] 6 >>> names.insert(1,‘zhang‘) #插入 7 >>> names 8 [‘qian‘, ‘zhang‘, ‘zhao‘, ‘Sun‘] 9 >>> names2=[1,2,3,4] 10 >>> names.extend(names2) #合並 11 >>> names 12 [‘qian‘, ‘zhang‘, ‘zhao‘, ‘Sun‘, 1, 2, 3, 4] 13 #深淺copy 14 >>> names3 = names.copy()#淺copy,指向同一塊內存地址 15 >>> names 16 [‘qian‘, ‘zhang‘, ‘zhao‘, ‘Sun‘, 1, 2, 3, 4] 17 >>> names3 18 [‘qian‘, ‘zhang‘, ‘zhao‘, ‘Sun‘, 1, 2, 3, 4] 19 #深copy,新增一塊內存地址,把數據完全copy一份到新內存 20 >>> import copy 21 >>> names 22 [‘qian‘, ‘zhang‘, ‘zhao‘, ‘Sun‘, 1, 2, 3, 4] 23 >>> names4 = copy.deepcopy(names) 24 >>> names4 25 [‘qian‘, ‘zhang‘, ‘zhao‘, ‘Sun‘, 1, 2, 3, 4]View Code
2.元組:只能查詢和切片,也叫只讀列表,只有count和index方法
1 >>> names = (‘alex‘,‘wang‘,‘eric‘) 2 >>> names.append(‘li‘) 3 Traceback (most recent call last): 4 File "<stdin>", line 1, in <module> 5 AttributeError: ‘tuple‘ object has no attribute ‘append‘ 6 >>> names[1] 7 ‘wang‘ 8 9 >>> print(names.index(‘alex‘)) 10 0 11 >>> print(names[names.index(‘alex‘)]) 12 alexView Code
3.字符串:文件中只能存儲字符串,且不可修改
1 name="my name is alex" 2 print(name.center(50,"-")) 打印50個字符,不夠用-補上,並把name放中間 3 -----------------my name is alex------------------ 4 >>> print(name.startswith(‘my‘)) #判斷是否以某字符開頭 5 True 6 print(name.endswith("ex")) 判斷name字符串是否以ex結尾 7 My name is alex 8 9 name="my\tnameis{name}andmyageis{year}old" 10 print(name.format(name=‘alex‘,year=23)) 11 my name is alex and my age is 23 old 12 print(name.index(‘a‘)) 13 5 14 print(‘123‘.isdigit())是否為整數 15 True 16 print(‘+‘.join([‘1‘,‘2‘,‘3‘,‘4‘])) 經常用 17 1+2+3+4 18 print(‘alexli‘.replace(‘l‘,‘L‘)) 把小寫l替換成大寫的L 19 aLex Li 20 print(‘alex li‘.split())把字符串按空格組成一個列表 21 [‘alex‘, ‘li‘]View Code
4.字典:key:value的數據類型,無序
>>> info = {‘stu1101‘:‘wang‘,‘stu1102‘:‘zhang‘,‘stu1103‘:‘li‘}
a.增加
1 >>> info = {‘stu1101‘:‘wang‘,‘stu1102‘:‘zhang‘,‘stu1103‘:‘li‘} 2 >>> info[‘stu1104‘] = ‘zhao‘ 3 >>> info 4 {‘stu1101‘: ‘wang‘, ‘stu1102‘: ‘zhang‘, ‘stu1103‘: ‘li‘, ‘stu1104‘: ‘zhao‘} 5 6 #合並 7 >>> info2 = {1:3,2:5} 8 >>> info.update(info2) 9 >>> info 10 {‘stu1101‘: ‘wang‘, ‘stu1102‘: ‘zhang‘, ‘stu1103‘: ‘li‘, ‘stu1104‘: ‘zhao‘, 1: 11 , 2: 5}View Code
b.修改
1 >>> info = {‘stu1101‘:‘wang‘,‘stu1102‘:‘zhang‘,‘stu1103‘:‘li‘} 2 >>> info[‘stu1101‘] = ‘lu‘ 3 >>> info 4 {‘stu1101‘: ‘lu‘, ‘stu1102‘: ‘zhang‘, ‘stu1103‘: ‘li‘}View Code
c.刪除
1 >>> info 2 {‘stu1101‘: ‘lu‘, ‘stu1102‘: ‘zhang‘, ‘stu1103‘: ‘li‘} 3 >>> del info[‘stu1101‘] 4 >>> info 5 {‘stu1102‘: ‘zhang‘, ‘stu1103‘: ‘li‘} 6 7 info.pop("stu1101") #pop刪除 8 info.popitem()隨機刪除View Code
d.查詢
1 >>> info 2 {‘stu1102‘: ‘zhang‘, ‘stu1103‘: ‘li‘} 3 >>> info[‘stu1102‘] 4 ‘zhang‘ 5 #判斷是否存在字典中 6 print(info.get(‘stu1104‘)) 安全獲取的方法 7 None 8 >>> print(‘stu1103‘ in info) 9 True 10 11 >>> info 12 {‘stu1102‘: ‘zhang‘, ‘stu1103‘: ‘li‘} 13 >>> info[‘stu1102‘] 14 ‘zhang‘ 15 >>> for i in info: #最建議的查詢方式 16 ... print(i,info[i]) 17 ... 18 stu1102 zhang 19 stu1103 li 20 >>> for k,v in info.items(): 21 ... print(k,v) 22 ... 23 stu1102 zhang 24 stu1103 li 25 26 >>> print(info.items()) 27 dict_items([(‘stu1102‘, ‘zhang‘), (‘stu1103‘, ‘li‘)])View Code
e.多級字典的查詢方式
5.集合:無序,天生去重
1 >>> list = [1,2,3,4] 2 >>> list_1 = set(list) 3 >>> print(type(list_1),list_1) 4 <class ‘set‘> {1, 2, 3, 4}View Code
關系型測試:
交差並子父對稱集操作
a.增加
1 >>> list = [1,2,3,4] 2 >>> list_1 = set(list) 3 >>> print(type(list_1),list_1) 4 <class ‘set‘> {1, 2, 3, 4} 5 >>> list_1.add(999) 6 >>> list_1 7 {1, 2, 3, 4, 999} 8 >>> list_1.update([777,888]) 9 >>> list_1 10 {1, 2, 3, 4, 999, 777, 888}View Code
b.刪除
1 >>> list_1.remove(999) 2 >>> list_1 3 {1, 2, 3, 4, 777, 888} 4 >>> list_1.discard(888) 5 >>> list_1 6 {1, 2, 3, 4, 777} 7 >>> list_1.pop() 8 1View Code
c.深淺復制,跟列表一樣
d.判斷
len(list_1) #測試長度
判斷是否存在集合中,大於小於等
6.return
兩個作用:
1.得到程序的執行結果;
2.程序結束,return後的代碼不再執行;
python 列表、元組、字符串、字典、集合、return等梳理