python的多元數(shù)據(jù)類(lèi)型(下)
元組
1.什么是元組tuple
元組tuple像是一個(gè)list,但是它內(nèi)部的值不可被修改。元組是一個(gè)有序的、不可變數(shù)據(jù)結(jié)構(gòu)/類(lèi)型
注意列表和元組之間一個(gè)有趣的關(guān)系:
列表 >> 元組 為加鎖
元組 >> 列表 為解鎖
支持元組和列表互相轉(zhuǎn)換
元組是一個(gè)保險(xiǎn)柜,數(shù)據(jù)進(jìn)入就是安全的
列表和元組的對(duì)比:

為什么需要有元組?
1、元組tuple對(duì)于大型數(shù)據(jù)處理速度優(yōu)于列表list,如果你有一個(gè)常量集需要經(jīng)常遍歷(for),那么元組的效率優(yōu)于列表
2、元組tuple由于其無(wú)法“寫(xiě)入”的特點(diǎn),放在元組內(nèi)部的數(shù)據(jù)自然就有一個(gè)“寫(xiě)保護(hù)”,類(lèi)似我們sd卡、cf卡或者部分U盤(pán)
3、特別注意:當(dāng)函數(shù)(方法)返回的數(shù)據(jù)大于一個(gè)時(shí),一般以元組形式返回
4、特別注意:由于元組的“寫(xiě)保護(hù)”模式,函數(shù)可以按照元組內(nèi)部元素的位置順序接受元組的數(shù)據(jù)
2.元組tuple支持什么數(shù)據(jù)類(lèi)型
元組支持不可變的數(shù)據(jù)類(lèi)型 :字符串str、整數(shù)int 、浮點(diǎn)float 、布爾bool 、元組tuple 、字典dict和列表list
3.元組tuple的基本特征
增加:支持空元組創(chuàng)建 不支持?jǐn)?shù)據(jù)更新(添加)
刪除:僅支持元組整體刪除 不支持元素刪除和切片刪除
修改:不能修改
查詢(xún):
1、支持元組數(shù)據(jù)查詢(xún)(基于下標(biāo)、索引、index)
2、支持切片查詢(xún)
3、支持第一級(jí)元素長(zhǎng)度統(tǒng)計(jì)(len)
4.如何聲明一個(gè)元組tuple
方法一:空值創(chuàng)建 tuple_data = tuple()
方法二:空值創(chuàng)建 tuple_data = ()
特別方法:?jiǎn)蝹€(gè)值創(chuàng)建 tuple_data = (“北京”,)必須要有逗號(hào)以區(qū)分該類(lèi)型為元組
特別方法:多值無(wú)括弧創(chuàng)建 tuple_data = “北京” , “上?!?/p>
元組的語(yǔ)法規(guī)則:元組之間使用 ,區(qū)隔
("23",23,True,1.78,"人")
頭尾使用小括弧()
元組添加其他類(lèi)型數(shù)據(jù)(嵌套)
([35,"kk"],{"名字":"like","ij":"iji"},(4,1,"3"))
特別注意:
1、元組內(nèi)的每個(gè)元素(數(shù)據(jù)),遵守該數(shù)據(jù)類(lèi)型的原有規(guī)則。比如字符串類(lèi)型是要加引號(hào)“”
2、可以有多層嵌套,每一層嵌套為一個(gè)獨(dú)立體存在
3、元組的“寫(xiě)保護(hù)”只保護(hù)一級(jí)數(shù)據(jù),如["like",29]是元組的一個(gè)元素,這個(gè)元素內(nèi)的元素可以按照列表的方式進(jìn)行增刪改查操作,如果元組內(nèi)還是元組,那么即為元組的規(guī)則,無(wú)法“寫(xiě)入”操作
5.玩轉(zhuǎn)元組tuple
聲明創(chuàng)建一個(gè)機(jī)遇個(gè)人信息的元組:
personal_info= (“l(fā)ike”,88,“張三”,1.4)
元組的基本操作:
1、查詢(xún):
查詢(xún)數(shù)據(jù) personal_info[1]
基于索引位置去數(shù)據(jù)>>>(88) (整數(shù)類(lèi)型)取一個(gè)值為當(dāng)前值的類(lèi)型
personal_info[0:2]
基于索引范圍取數(shù)據(jù)>>>("like",88)取多個(gè)值還是一個(gè)元組
2、刪除:
del personal_info 刪除整個(gè)元組
3、元組的拼接:
num_1 = (1,2,3)
num_2 = (4,5,6)
num_new = num_1 + num_2 輸出為 >>>(1,2,3,4,5,6)
4、元組和列表轉(zhuǎn)換:
list_data = [1,2,3]
new_tuple = tuple(list_data) 輸出為>>> (1,2,3)
tuple_data = (1,2,3)
new_list = list(tuple_data) 輸出為>>> [1,2,3]
5、元組通過(guò)變量直接取值
personal_info = ("張三","北京",22)
name,city,age = personal_info
輸出為>>>
name 為 張三
city為北京
age為22
6、元素?cái)?shù)量統(tǒng)計(jì)
message = (1,2,3,4,1,3,1)
message.conunt(1) 輸出>>>1
7、自身復(fù)制
message = (1,2,3)
message_new = message * 3 輸出為>>> (1,2,3,1,2,3,1,2,3)
8、元組的長(zhǎng)度
num_1= (1,2,3,4)
len(num_1) 輸出為>>>4
9、包含關(guān)系判斷
message = ("好",'好','學(xué)','習(xí)')
"好" in message 輸出為>>>True
特別注意僅支持當(dāng)前層級(jí)的判斷
10、切片延伸
num = (0,1,2,3,4,5,6,7,8,9)
num[0:10:2][起:止:步長(zhǎng)] 輸出>>>(0,2,4,6,8)
特別注意-類(lèi)似for循環(huán)里的range()函數(shù)
num[::2]輸出>>>(0,2,4,6,8)
特別注意-起止不設(shè)定默認(rèn)從頭到尾的范圍
11、new_tuple = ( "哈士奇","薩摩","泰迪")
元組跟列表這兩個(gè)數(shù)據(jù)類(lèi)型的性質(zhì)決定了它通常內(nèi)部存在的數(shù)據(jù)比較長(zhǎng),書(shū)寫(xiě)的時(shí)候會(huì)超出屏幕的邊界,所以說(shuō)你可以這樣做:
new_tuple = (
"哈士奇",
"薩摩",
"泰迪"
)
12、元組的嵌套
元組和元組嵌套與列表與列表嵌套的差異:
元組中的列表可以按照列表的特征進(jìn)行操作:
new_tuple = (
[1,2,3],
[2,3,4],
[3,4,5]
)
元組中的元組的元素不可以修改:
new_tuple = (
(1,2,3),
(2,3,4),
(3,4,5)
)
13、tuple與for循環(huán)
1、初級(jí)難度
dogs = (
"哈士奇",
"薩摩",
"泰迪"
)
for dog in dogs:
print(dog)
第一次:哈士奇
第二次:薩摩
第三次:泰迪
2、中級(jí)難度
menus = (
('拍黃瓜','大拌菜'),
('雞丁','肉絲'),
('蛋糕','冰淇凌')
)
for menu in menus:
print(menu)
第一次:('拍黃瓜','大拌菜')
第二次:('雞丁','肉絲')
第三次:('蛋糕','冰淇凌')
3、高級(jí)難度
menus = (
('拍黃瓜','大拌菜'),
('雞丁','肉絲'),
('蛋糕','冰淇凌')
)
for menu in menus:
print(menu)
for food in menu:
print(food)
第一次:('拍黃瓜','大拌菜')
內(nèi)第一次:拍黃瓜
內(nèi)第二次:大拌菜
第二次:('雞丁','肉絲')
內(nèi)第一次:雞丁
內(nèi)第二次:肉絲
第三次:('蛋糕','冰淇凌')
內(nèi)第一次:蛋糕
內(nèi)第二次:冰淇凌
字典
一個(gè)可以存儲(chǔ)具有一系列映射關(guān)系的數(shù)據(jù)結(jié)構(gòu)即為字典表
1、字典表dict支持什么數(shù)據(jù)類(lèi)型:
字典中支持存儲(chǔ):字符串str、整數(shù)int、浮點(diǎn)float、布爾bool、列表list、元組tuple、字典dict
2、字典表的特征
dict 2個(gè)不準(zhǔn):不準(zhǔn)改變鍵(KEY)鍵(KEY)不允許重復(fù)
dict4個(gè)支持:增加鍵(KEY)和值(Value)
刪除鍵(KEY)和值(Value)
基于鍵(KEY)改變值(Value)
基于鍵(KEY)查詢(xún)值(Value)
dict 2個(gè)注意:只能使用不可變類(lèi)型作為鍵、通常不使用數(shù)字(int/float)作為建
3、如何聲明一個(gè)字典
方法一: 空值創(chuàng)建 dict_1 = dict()
方法二:空值創(chuàng)建 dict_2 = {}
方法三:非空值創(chuàng)建 dict _3 = {"姓名":'張三'}
dict _4 = dict({"姓名":'張三'})
dict _5 = dict("姓名" = '張三')
按照key:value 的格式可以建立多個(gè)鍵值對(duì)(items)的字典表
一個(gè)鍵和一個(gè)值叫鍵值對(duì)在python里這個(gè)叫一個(gè)item(全部字典表里的鍵值對(duì)那就是items)
字典表的語(yǔ)法規(guī)則{'NAME':"張三","age",18}
鍵值之間 冒號(hào):分割 鍵值對(duì)(item)之間的分割使用,逗號(hào)
字典表加入列表和元組類(lèi)型
{"NAME":("張三","李四")},'city':['BJ',‘HB']
注意列表 元組[ ] ( )外 不要加引號(hào)否則會(huì)轉(zhuǎn)成字符串
4、玩轉(zhuǎn)字典表
聲明創(chuàng)建一個(gè)基于個(gè)人信息的字典
info = {"姓名":'張三',"年齡",20}
字典表基本操作
增加數(shù)據(jù):info['性別'] = '男' 字典名[鍵] = 添加的值
修改數(shù)據(jù):info['年齡'] = 21 字典名[鍵] = 修改的值
查詢(xún)數(shù)據(jù):info['年齡'] 或 info.get("年齡")
刪除數(shù)據(jù): del info['年齡'] 或 info.pop("年齡") 或 info.clear() 清空字典
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python之基數(shù)排序的實(shí)現(xiàn)
這篇文章主要介紹了python之基數(shù)排序的實(shí)現(xiàn),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
Python如何通過(guò)內(nèi)存管理提升程序執(zhí)行效率
Python提供了自動(dòng)內(nèi)存管理的功能,但是如果不小心使用,可能會(huì)導(dǎo)致內(nèi)存泄漏和性能問(wèn)題,所以巧妙使用內(nèi)存管理是提高Python執(zhí)行效率的關(guān)鍵,下面就來(lái)和大家仔細(xì)講講Python的內(nèi)存管理技巧吧2023-06-06
python實(shí)現(xiàn)MySQL指定表增量同步數(shù)據(jù)到clickhouse的腳本
這篇文章主要介紹了python實(shí)現(xiàn)MySQL指定表增量同步數(shù)據(jù)到clickhouse的腳本,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
Python 調(diào)用 zabbix api的方法示例
這篇文章主要介紹了Python 調(diào)用 zabbix api的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
tkinter動(dòng)態(tài)顯示時(shí)間的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了tkinter動(dòng)態(tài)顯示時(shí)間的兩種實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法
這篇文章主要介紹了tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

