淺談python數(shù)據(jù)類型及其操作
一、Number 數(shù)字

1.內(nèi)置函數(shù):需要導(dǎo)入math
2.隨機(jī)數(shù)函數(shù):需要導(dǎo)入random 模塊
3.三角函數(shù):需要導(dǎo)入math模塊
4.數(shù)學(xué)常量:需要導(dǎo)入math模塊
#1.數(shù)據(jù)函數(shù)的使用 #========================== #內(nèi)置函數(shù) print(abs(-10))#10絕對值 print(round(4.56789,2)) #4.57 使用四舍五入的方式保留小數(shù)點(diǎn)后兩位 a = [10,30,20,80,50] print(max(a))#80 最大值 print(min(a))#10 最小值 #需要導(dǎo)入math import math print(math.ceil(2.3))#3 進(jìn)一取整 print(math.floor(2.99999)) #2 舍去取整
10
4.57
80
10
3
#2.隨機(jī)數(shù)函數(shù) #============================= #需要導(dǎo)入random 模塊 import random print(random.random()) #隨機(jī)一個(gè)0~1的小數(shù) print(random.choice(['aaa','bbb','cccc']))#隨機(jī)獲取一個(gè)值 #指定范圍的隨機(jī) print(random.randrange(10)) #隨機(jī)0~9的一個(gè)值 print(random.randrange(4,10)) #隨機(jī)4~9的一個(gè)值 print(random.randrange(0,10,2)) #隨機(jī)4~9的一個(gè)值 b = [1,2,3,4,5,6] random.shuffle(b) #將容器內(nèi)的值順序打亂 print(b)
0.6045140519996484
cccc
3
4
0
[1, 3, 4, 6, 5, 2]
#3.三角函數(shù) #需要導(dǎo)入math模塊 print(math.sin(90)) print(math.cos(0))
0.8939966636005579
1.0
#4.數(shù)學(xué)常量 #需要導(dǎo)入math模塊 print(math.pi) #圓周率 print(math.e) #自然常數(shù)
3.141592653589793
2.718281828459045
二、String 字符串

# 1.字符流(str 字符串) <=> 字節(jié)流(bytes 字符串、二進(jìn)制)之間的轉(zhuǎn)換 #字符流轉(zhuǎn)換為字節(jié)流 str = "zhangsan" b1 = str.encode(encoding="utf-8") print(b1) b2 = bytes(str,encoding="utf+8") #結(jié)果中,只要是b開頭的都叫字節(jié)流 print(b2) #字節(jié)流轉(zhuǎn)成字符流 print(b1.decode(encoding="utf-8")) #由字節(jié)轉(zhuǎn)成字符 print(bytes.decode(b2,encoding="utf-8"))
b'zhangsan'
b'zhangsan'
zhangsan
zhangsan
#2.轉(zhuǎn)義符的使用
print("ab\\cde\n\rfg\thijk\"lmnopq")

#3. 字符串的格式化:format %
print("a={};b={}".format(10,20)) #用括號(hào)作占位符。
print("a={1};b={0}".format(10,20)) # 指定索引號(hào)代表第幾參數(shù)
print("a={0};b={0}".format(10))
print("name={name:10};age={age}".format(age=20,name="lisi"))#name:10 表示占10個(gè)寬度。
print("name={name:<10};age={age}".format(age=20,name="lisi"))#小于號(hào):靠左邊;大于號(hào):靠右邊。
print("{:.2f}".format(5.6789))# .2f表示保留小數(shù)后兩位
name="zhangsan"
print(f"name={name}")

#4.字符串的內(nèi)建函數(shù)
#==============================
name = "ZhangSan"
print(name,name.upper(),name.lower()) #字符串的大小寫
print("字符串長度:",len(name))
print("統(tǒng)計(jì)字符串中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")) #從頭查找,找不到報(bào)錯(cuò)
print(" aaa ".strip())#去除字符串兩側(cè)多余空格(或指定字符)
print(" aaa ".lstrip())#去除字符串左側(cè)多余空格(或指定字符)
print(" aaa ".rstrip())#去除字符串右側(cè)多余空格(或指定字符)







三、List 列表

# 1. 列表的定義 list1 = [] #定義一個(gè)空列表 list2 = list() #定義一個(gè)空列表 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'])#在列表尾部添加多個(gè)值
a.insert(3,"qqq") #在指定位置插入一個(gè)值
print(a)
b = [1,2,3,3,2,1,4,5]
print(b.count(1)) #統(tǒng)計(jì)1在列表中出現(xiàn)的次數(shù)
print(b.index(5)) #5出現(xiàn)的位置
print(a.pop()) #最后一個(gè)值
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()#淺復(fù)制:復(fù)制一個(gè)列表 print(id(a),id(b),id(c)) a[1] = 200 print(a) print(b) print(c)




四、Tuple 元組

#========================================
#1. 定義元組的方式
tup0 = () #定義一個(gè)空元組 或者變量 = tuple() (沒有意義,因?yàn)樵M不能被修改)
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])
#注意下面這種定義下不加逗號(hào),類型為整型
tup4 = (50)
print(type(tup4))
#以下修改元組元素操作是非法的。
#tup1[0] = 100
#元組中的元素值是不允許刪除的,但可使用del語句來刪除整個(gè)元組
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
#遍歷等長二級(jí)元組 b = ((10,20),(30,40),(50,60)) for v1,v2 in b: print(v1,v2) #遍歷不等長二級(jí)元組 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) #判斷一個(gè)值是否在一個(gè)元組中 #獲取 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.集合的基礎(chǔ)操作
#====================================
#定義集合的方式:
#集合的定義
set1 = set() #定義一個(gè)空的集合
set2 = {1,2,3}
#增加一個(gè)元素
set1.add(5)
#增加多個(gè):參數(shù)可以是列表或元組
set1.update([5,6,7,8])
#刪除某個(gè)值(參數(shù)為元素值,沒有會(huì)報(bào)錯(cuò))
set2.remove(1)
set2.discard(50) #刪除不存在的值不會(huì)報(bào)錯(cuò)
#查:無法通過下標(biāo)索引
#改:不可變類型無法修改元素
#清空集合
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中不同時(shí)存在的元素
# 2. 集合的遍歷
#======================================
a = {10,20,30,40,50}
#使用for ... in 遍歷
for i in a:
print(i)
#注:沒有while遍歷,因?yàn)闆]有排序,
#遍歷等長二級(jí)集合
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) #判斷一個(gè)值是否在一個(gè)集合中
3
False

六、Dictionary 字典 (非常重要)

#字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類型對象
# 1. 字典的基礎(chǔ)操作:
#==============================
#定義字典的方式:
#字典的定義
d0 = {} #或dict()#定義一個(gè)空的字典
d1 = {'name':'python','age':17,'class':'first'}
#輸出子字典中的信息
print("d1['name']: ",d1['name']) #python
print("d1['age']: ",d1['age']) #17
#輸出錯(cuò)誤信息:KeyError
# print("d1['alice']:",d1['alice'])
#修改和添加內(nèi)容
d1['age'] = 18; #key存在則更新age
d1['school'] = '云課堂'# 不存在則添加信息
print(d1)
#刪除信息
del d1['name']#刪除鍵'name'一個(gè)元素值
d1.clear() #清空字典
del d1

#2. 字典的遍歷
#===================================
d1 = {'name':'python','age':17,'class':'first'}
#使用for...in 遍歷(默認(rèn)遍歷鍵)
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列表,拿這個(gè)列表的值; if i%2==0 這個(gè)值若能被2整除,拿出來; 前面的i表示新生成一個(gè)列表 print(b)
[2, 4, 6, 8]
stu = {'name':'zhangsan','age':20,'sex':'man'}
#將當(dāng)前stu字典遍歷形成一個(gè)新的字典,去掉了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()) #以列表方式返回當(dāng)前字典的鍵值對
print(stu.keys())
print(stu.values())
print(stu.get("name")) #
print(stu.get("iphone",None)) #獲取指定key的值,若無返回None
print(stu.pop('age'))#彈出指定key的值,表示字典中沒有了此內(nèi)容
print(stu)
print(stu.popitem()) #隨機(jī)彈出一對信息(移除了),默認(rèn)最后一個(gè)。
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)

#導(dǎo)入一個(gè)深度拷貝模塊
import copy
a = {"name":"zhanngsan","data":[10,20,30]}
b = copy.deepcopy(a)#深度拷貝
a["name"] = 'lisi'
a["data"][1] = 200
print(a)
print(b)


到此這篇關(guān)于淺談python數(shù)據(jù)類型及其操作的文章就介紹到這了,更多相關(guān)python數(shù)據(jù)類型內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信