淺談python數(shù)據類型及其操作
一、Number 數(shù)字
1.內置函數(shù):需要導入math
2.隨機數(shù)函數(shù):需要導入random 模塊
3.三角函數(shù):需要導入math模塊
4.數(shù)學常量:需要導入math模塊
#1.數(shù)據函數(shù)的使用 #========================== #內置函數(shù) print(abs(-10))#10絕對值 print(round(4.56789,2)) #4.57 使用四舍五入的方式保留小數(shù)點后兩位 a = [10,30,20,80,50] print(max(a))#80 最大值 print(min(a))#10 最小值 #需要導入math import math print(math.ceil(2.3))#3 進一取整 print(math.floor(2.99999)) #2 舍去取整
10
4.57
80
10
3
#2.隨機數(shù)函數(shù) #============================= #需要導入random 模塊 import random print(random.random()) #隨機一個0~1的小數(shù) print(random.choice(['aaa','bbb','cccc']))#隨機獲取一個值 #指定范圍的隨機 print(random.randrange(10)) #隨機0~9的一個值 print(random.randrange(4,10)) #隨機4~9的一個值 print(random.randrange(0,10,2)) #隨機4~9的一個值 b = [1,2,3,4,5,6] random.shuffle(b) #將容器內的值順序打亂 print(b)
0.6045140519996484
cccc
3
4
0
[1, 3, 4, 6, 5, 2]
#3.三角函數(shù) #需要導入math模塊 print(math.sin(90)) print(math.cos(0))
0.8939966636005579
1.0
#4.數(shù)學常量 #需要導入math模塊 print(math.pi) #圓周率 print(math.e) #自然常數(shù)
3.141592653589793
2.718281828459045
二、String 字符串
# 1.字符流(str 字符串) <=> 字節(jié)流(bytes 字符串、二進制)之間的轉換 #字符流轉換為字節(jié)流 str = "zhangsan" b1 = str.encode(encoding="utf-8") print(b1) b2 = bytes(str,encoding="utf+8") #結果中,只要是b開頭的都叫字節(jié)流 print(b2) #字節(jié)流轉成字符流 print(b1.decode(encoding="utf-8")) #由字節(jié)轉成字符 print(bytes.decode(b2,encoding="utf-8"))
b'zhangsan'
b'zhangsan'
zhangsan
zhangsan
#2.轉義符的使用 print("ab\\cde\n\rfg\thijk\"lmnopq")
#3. 字符串的格式化:format % print("a={};b={}".format(10,20)) #用括號作占位符。 print("a={1};b={0}".format(10,20)) # 指定索引號代表第幾參數(shù) print("a={0};b={0}".format(10)) print("name={name:10};age={age}".format(age=20,name="lisi"))#name:10 表示占10個寬度。 print("name={name:<10};age={age}".format(age=20,name="lisi"))#小于號:靠左邊;大于號:靠右邊。 print("{:.2f}".format(5.6789))# .2f表示保留小數(shù)后兩位 name="zhangsan" print(f"name={name}")
#4.字符串的內建函數(shù) #============================== name = "ZhangSan" print(name,name.upper(),name.lower()) #字符串的大小寫 print("字符串長度:",len(name)) print("統(tǒng)計字符串中an出現(xiàn)的次數(shù):",name.count('an')) print("字符串替換: ",name.replace("San","wuji")) print("10:20:30:40".split(":")) #字符串拆分(列表)
# 字符串查找 str = "zhangsanfang" print(str.find("an"))#從頭開始查找 ,找不到返回-1 print(str.rfind("an"))#從末尾開始查找 ,找不到返回-1 print(str.index("an")) #從頭查找,找不到報錯 print(" aaa ".strip())#去除字符串兩側多余空格(或指定字符) print(" aaa ".lstrip())#去除字符串左側多余空格(或指定字符) print(" aaa ".rstrip())#去除字符串右側多余空格(或指定字符)
三、List 列表
# 1. 列表的定義 list1 = [] #定義一個空列表 list2 = list() #定義一個空列表 list3 = ['python','java','php',10,20] #定義列表 list4 = [1,2,3,4,5,6,7] #定義列表 print(list4) list4[3] = 400 #修改 print(list4) del list4[5]#刪除 print(list4)
[1, 2, 3, 4, 5, 6, 7]
[1, 2, 3, 400, 5, 6, 7]
[1, 2, 3, 400, 5, 7]
10 20 30 40 50
10 20 30 40 50
# 2.列表的遍歷 a = [10,20,30,40,50] #使用for ... in 遍歷 for i in a: print(i,end= " ") print() #使用while循環(huán)遍歷 i = 0 while i <len(a): print(a[i],end= " ") i += 1 print()
10 20 30 40 50
10 20 30 40 50
#遍歷等長的二階列表 b = [["aa","AAA"],["bb","BBB"],["cc","CCC"]] for v1,v2 in b: print(v1,v2) #遍歷不規(guī)則二階列表 c = [[10,20],[30,40,50],[60,70],[80,90,100,110,120]] for v in c: for i in v: print(i,end=" ") print()
# 4. 列表的方法 (非常重要) a = ['zhangsan','lisi'] a.append('wangwu') #在列表的尾部新增值 a.extend(['zhaoliu','xiaolin'])#在列表尾部添加多個值 a.insert(3,"qqq") #在指定位置插入一個值 print(a) b = [1,2,3,3,2,1,4,5] print(b.count(1)) #統(tǒng)計1在列表中出現(xiàn)的次數(shù) print(b.index(5)) #5出現(xiàn)的位置 print(a.pop()) #最后一個值 a.remove("zhangsan") #刪除指定值 print(a) a.reverse() #顛倒順序 print(a) b.sort()#升序 print(b) b.clear() #清空 print(b)
a = [10,20,30] b = a c = a.copy()#淺復制:復制一個列表 print(id(a),id(b),id(c)) a[1] = 200 print(a) print(b) print(c)
四、Tuple 元組
#======================================== #1. 定義元組的方式 tup0 = () #定義一個空元組 或者變量 = tuple() (沒有意義,因為元組不能被修改) tup1 = ('Google','Python',1997,2000) tup2 = (1,2,3,4,5) tup3 = "a","b","c","d" #輸出元組: print("tup1[0]: ",tup1[0]) print("tup2[1:5]:",tup2[1:5]) #注意下面這種定義下不加逗號,類型為整型 tup4 = (50) print(type(tup4)) #以下修改元組元素操作是非法的。 #tup1[0] = 100 #元組中的元素值是不允許刪除的,但可使用del語句來刪除整個元組 del tup0;
tup1[0]: Google
tup2[1:5]: (2, 3, 4, 5)
<class ‘int'>
#2. 元組的遍歷 #=========================== a = (10,20,30,40,50) #使用for ... in 遍歷 for i in a: print(i) # 使用while遍歷 i = 0 while i<len(a): print(a[i]) i += 1
10
20
30
40
50
10
20
30
40
50
10 20
30 40
50 60
#遍歷等長二級元組 b = ((10,20),(30,40),(50,60)) for v1,v2 in b: print(v1,v2) #遍歷不等長二級元組 b = ((10,20),(30,40,50,60),(70,80,90)) for v in b: for i in v: print(i,end=" ") print()
10 20
30 40
50 60
10 20
30 40 50 60
70 80 90
# 4. 元組的操作符: #==================================== a = (1,2,3) b = (4,5,6,7) print(len(a)) print(a+b) print(a*2) print(6 in b) #判斷一個值是否在一個元組中 #獲取 print(b[2]) print(b[-2]) print(b[1:]) print(b[1:3])
3
(1, 2, 3, 4, 5, 6, 7)
(1, 2, 3, 1, 2, 3)
True
6
6
(5, 6, 7)
(5, 6)
五、Sets集合
# 1.集合的基礎操作 #==================================== #定義集合的方式: #集合的定義 set1 = set() #定義一個空的集合 set2 = {1,2,3} #增加一個元素 set1.add(5) #增加多個:參數(shù)可以是列表或元組 set1.update([5,6,7,8]) #刪除某個值(參數(shù)為元素值,沒有會報錯) set2.remove(1) set2.discard(50) #刪除不存在的值不會報錯 #查:無法通過下標索引 #改:不可變類型無法修改元素 #清空集合 set2.clear() a = {10,20,30} b = {20,50} print(a - b) #a和b的差集 print(a | b) #a和b的并集 print(a & b) #a和b的交集 print(a ^ b) #a和b中不同時存在的元素 # 2. 集合的遍歷 #====================================== a = {10,20,30,40,50} #使用for ... in 遍歷 for i in a: print(i) #注:沒有while遍歷,因為沒有排序, #遍歷等長二級集合 b = {(10,20),{30,40},(50,60)} for v1,v2 in b: print(v1,v2)
# 4. 集合的操作符 a = {1,2,3} print(len(a)) #3 集合長度 print(6 in a) #判斷一個值是否在一個集合中
3
False
六、Dictionary 字典 (非常重要)
#字典是另一種可變容器模型,且可存儲任意類型對象 # 1. 字典的基礎操作: #============================== #定義字典的方式: #字典的定義 d0 = {} #或dict()#定義一個空的字典 d1 = {'name':'python','age':17,'class':'first'} #輸出子字典中的信息 print("d1['name']: ",d1['name']) #python print("d1['age']: ",d1['age']) #17 #輸出錯誤信息:KeyError # print("d1['alice']:",d1['alice']) #修改和添加內容 d1['age'] = 18; #key存在則更新age d1['school'] = '云課堂'# 不存在則添加信息 print(d1) #刪除信息 del d1['name']#刪除鍵'name'一個元素值 d1.clear() #清空字典 del d1
#2. 字典的遍歷 #=================================== d1 = {'name':'python','age':17,'class':'first'} #使用for...in 遍歷(默認遍歷鍵) for k in d1: print(k,"=>",d1[k]) #遍歷鍵和值(使用items()) for k,v in d1.items(): print(k,"===>",v)
# 3. 推倒式的使用 #================================ a = [1,2,3,4,5,6,7,8] #遍歷列表a中的值i ,并判斷是否是偶數(shù),并形成新的列表保留下來 b = [i for i in a if i%2==0]#for i in a ,循環(huán)a列表,拿這個列表的值; if i%2==0 這個值若能被2整除,拿出來; 前面的i表示新生成一個列表 print(b)
[2, 4, 6, 8]
stu = {'name':'zhangsan','age':20,'sex':'man'} #將當前stu字典遍歷形成一個新的字典,去掉了age s1 = {k:v for k,v in stu.items()}#for k ,v in stu.items()遍歷字典;k:v形成新的字典;if k != "age" 作判斷 s2 = {k:v for k,v in stu.items() if k !="age"}#for k ,v in stu.items()遍歷字典;k:v形成新的字典;if k != "age" 作判斷 print(s1) print(s2)
# 字典的操作方法 #================================= stu = {'name':'zhangsan','age':20,'sex':'man'} print(stu.items()) #以列表方式返回當前字典的鍵值對 print(stu.keys()) print(stu.values()) print(stu.get("name")) # print(stu.get("iphone",None)) #獲取指定key的值,若無返回None print(stu.pop('age'))#彈出指定key的值,表示字典中沒有了此內容 print(stu) print(stu.popitem()) #隨機彈出一對信息(移除了),默認最后一個。 print(stu) stu.clear()
#容器的拷貝(淺拷貝和深度拷貝) #淺拷貝 a = {"name":"zhanngsan","data":[10,20,30]} b = a.copy()#淺拷貝 a["name"] = 'lisi' a["data"][1] = 200 print(a) print(b)
#導入一個深度拷貝模塊 import copy a = {"name":"zhanngsan","data":[10,20,30]} b = copy.deepcopy(a)#深度拷貝 a["name"] = 'lisi' a["data"][1] = 200 print(a) print(b)
到此這篇關于淺談python數(shù)據類型及其操作的文章就介紹到這了,更多相關python數(shù)據類型內容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網友推薦、互聯(lián)網收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。