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

1.內(nèi)置函數(shù):需要導入math
2.隨機數(shù)函數(shù):需要導入random 模塊
3.三角函數(shù):需要導入math模塊
4.數(shù)學常量:需要導入math模塊
#1.數(shù)據(jù)函數(shù)的使用 #========================== #內(nèi)置函數(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) #將容器內(nèi)的值順序打亂 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 字符串、二進制)之間的轉(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)) #用括號作占位符。
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.字符串的內(nèi)建函數(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()) #去除字符串兩側(cè)多余空格(或指定字符)
print(" aaa ".lstrip()) #去除字符串左側(cè)多余空格(或指定字符)
print(" aaa ".rstrip()) #去除字符串右側(cè)多余空格(或指定字符)







三、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.集合的基礎(chǔ)操作
#====================================
#定義集合的方式:
#集合的定義
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 字典 (非常重要)

#字典是另一種可變?nèi)萜髂P?,且可存儲任意類型對?
# 1. 字典的基礎(chǔ)操作:
#==============================
#定義字典的方式:
#字典的定義
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'])
#修改和添加內(nèi)容
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的值,表示字典中沒有了此內(nèi)容
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)


到此這篇關(guān)于淺談python數(shù)據(jù)類型及其操作的文章就介紹到這了,更多相關(guān)python數(shù)據(jù)類型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python-pandas創(chuàng)建Series數(shù)據(jù)類型的操作
- Python 分布式緩存之Reids數(shù)據(jù)類型操作詳解
- Python常見數(shù)據(jù)類型轉(zhuǎn)換操作示例
- Python數(shù)據(jù)類型之Number數(shù)字操作實例詳解
- python內(nèi)置數(shù)據(jù)類型之列表操作
- Python數(shù)據(jù)類型中的“冒號“[::]——分片與步長操作示例
- python數(shù)據(jù)類型_字符串常用操作(詳解)
- python數(shù)據(jù)類型_元組、字典常用操作方法(介紹)
- 淺談Python數(shù)據(jù)類型判斷及列表腳本操作
相關(guān)文章
pandas創(chuàng)建DataFrame的7種方法小結(jié)
這篇文章主要介紹了pandas創(chuàng)建DataFrame的7種方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-06-06
Python統(tǒng)計分析模塊statistics用法示例
這篇文章主要介紹了Python統(tǒng)計分析模塊statistics用法,結(jié)合實例形式分析了Python統(tǒng)計分析模塊statistics計算平均數(shù)、中位數(shù)、出現(xiàn)次數(shù)、標準差等相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
使用Python的Tornado框架實現(xiàn)一個一對一聊天的程序
這篇文章主要介紹了使用Python的Tornado框架實現(xiàn)一個一對一聊天的程序,程序基于WebSocket,需要的朋友可以參考下2015-04-04
在Python3.74+PyCharm2020.1 x64中安裝使用Kivy的詳細教程
這篇文章主要介紹了在Python3.74+PyCharm2020.1 x64中安裝使用Kivy的詳細教程,本文通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-08-08
python-leetcode求區(qū)間[M,N]內(nèi)的所有素數(shù)的個數(shù)實現(xiàn)方式
這篇文章主要介紹了python-leetcode求區(qū)間[M,N]內(nèi)的所有素數(shù)的個數(shù)實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08
python樹的雙親存儲結(jié)構(gòu)的實現(xiàn)示例
本文主要介紹了python樹的雙親存儲結(jié)構(gòu),這種存儲結(jié)構(gòu)是一種順序存儲結(jié)構(gòu),采用元素形如“[結(jié)點值,雙親結(jié)點索引]”的列表表示,感興趣的可以了解一下2023-11-11

