1. 程式人生 > >python 列表、元組、字符串、字典、集合、return等梳理

python 列表、元組、字符串、字典、集合、return等梳理

插入 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 [zhang
, 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
View Code

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] = gao
9 >>> names 10 [zhang, qian, gao, li, zhao, Sun]
View Code

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 alex
View 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 1
View Code

c.深淺復制,跟列表一樣

d.判斷

len(list_1) #測試長度

判斷是否存在集合中,大於小於等

6.return

兩個作用:

1.得到程序的執行結果;

2.程序結束,return後的代碼不再執行;

技術分享

python 列表、元組、字符串、字典、集合、return等梳理