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

為什么需要有元組?
1、元組tuple對于大型數(shù)據(jù)處理速度優(yōu)于列表list,如果你有一個常量集需要經(jīng)常遍歷(for),那么元組的效率優(yōu)于列表
2、元組tuple由于其無法“寫入”的特點,放在元組內(nèi)部的數(shù)據(jù)自然就有一個“寫保護”,類似我們sd卡、cf卡或者部分U盤
3、特別注意:當(dāng)函數(shù)(方法)返回的數(shù)據(jù)大于一個時,一般以元組形式返回
4、特別注意:由于元組的“寫保護”模式,函數(shù)可以按照元組內(nèi)部元素的位置順序接受元組的數(shù)據(jù)
2.元組tuple支持什么數(shù)據(jù)類型
元組支持不可變的數(shù)據(jù)類型 :字符串str、整數(shù)int 、浮點float 、布爾bool 、元組tuple 、字典dict和列表list
3.元組tuple的基本特征
增加:支持空元組創(chuàng)建 不支持?jǐn)?shù)據(jù)更新(添加)
刪除:僅支持元組整體刪除 不支持元素刪除和切片刪除
修改:不能修改
查詢:
1、支持元組數(shù)據(jù)查詢(基于下標(biāo)、索引、index)
2、支持切片查詢
3、支持第一級元素長度統(tǒng)計(len)
4.如何聲明一個元組tuple
方法一:空值創(chuàng)建 tuple_data = tuple()
方法二:空值創(chuàng)建 tuple_data = ()
特別方法:單個值創(chuàng)建 tuple_data = (“北京”,)必須要有逗號以區(qū)分該類型為元組
特別方法:多值無括弧創(chuàng)建 tuple_data = “北京” , “上?!?/p>
元組的語法規(guī)則:元組之間使用 ,區(qū)隔
("23",23,True,1.78,"人")
頭尾使用小括?。ǎ?元組添加其他類型數(shù)據(jù)(嵌套)
([35,"kk"],{"名字":"like","ij":"iji"},(4,1,"3"))
特別注意:
1、元組內(nèi)的每個元素(數(shù)據(jù)),遵守該數(shù)據(jù)類型的原有規(guī)則。比如字符串類型是要加引號“”
2、可以有多層嵌套,每一層嵌套為一個獨立體存在
3、元組的“寫保護”只保護一級數(shù)據(jù),如["like",29]是元組的一個元素,這個元素內(nèi)的元素可以按照列表的方式進行增刪改查操作,如果元組內(nèi)還是元組,那么即為元組的規(guī)則,無法“寫入”操作
5.玩轉(zhuǎn)元組tuple
聲明創(chuàng)建一個機遇個人信息的元組:
personal_info= (“l(fā)ike”,88,“張三”,1.4)
元組的基本操作:
1、查詢:
查詢數(shù)據(jù) personal_info[1]
基于索引位置去數(shù)據(jù)>>>(88) (整數(shù)類型)取一個值為當(dāng)前值的類型
personal_info[0:2]
基于索引范圍取數(shù)據(jù)>>>("like",88)取多個值還是一個元組
2、刪除:
del personal_info 刪除整個元組
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、元組通過變量直接取值
personal_info = ("張三","北京",22)
name,city,age = personal_info
輸出為>>>
name 為 張三
city為北京
age為22
6、元素數(shù)量統(tǒng)計
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、元組的長度
num_1= (1,2,3,4)
len(num_1) 輸出為>>>4
9、包含關(guān)系判斷
message = ("好",'好','學(xué)','習(xí)')
"好" in message 輸出為>>>True
特別注意僅支持當(dāng)前層級的判斷
10、切片延伸
num = (0,1,2,3,4,5,6,7,8,9)
num[0:10:2][起:止:步長] 輸出>>>(0,2,4,6,8)
特別注意-類似for循環(huán)里的range()函數(shù)
num[::2]輸出>>>(0,2,4,6,8)
特別注意-起止不設(shè)定默認(rèn)從頭到尾的范圍
11、new_tuple = ( "哈士奇","薩摩","泰迪")
元組跟列表這兩個數(shù)據(jù)類型的性質(zhì)決定了它通常內(nèi)部存在的數(shù)據(jù)比較長,書寫的時候會超出屏幕的邊界,所以說你可以這樣做:
new_tuple = (
"哈士奇",
"薩摩",
"泰迪"
)
12、元組的嵌套
元組和元組嵌套與列表與列表嵌套的差異:
元組中的列表可以按照列表的特征進行操作:
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、初級難度
dogs = (
"哈士奇",
"薩摩",
"泰迪"
)
for dog in dogs:
print(dog)
第一次:哈士奇
第二次:薩摩
第三次:泰迪
2、中級難度
menus = (
('拍黃瓜','大拌菜'),
('雞丁','肉絲'),
('蛋糕','冰淇凌')
)
for menu in menus:
print(menu)
第一次:('拍黃瓜','大拌菜')
第二次:('雞丁','肉絲')
第三次:('蛋糕','冰淇凌')
3、高級難度
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)第二次:冰淇凌
字典
一個可以存儲具有一系列映射關(guān)系的數(shù)據(jù)結(jié)構(gòu)即為字典表
1、字典表dict支持什么數(shù)據(jù)類型:
字典中支持存儲:字符串str、整數(shù)int、浮點float、布爾bool、列表list、元組tuple、字典dict
2、字典表的特征
dict 2個不準(zhǔn):不準(zhǔn)改變鍵(KEY)鍵(KEY)不允許重復(fù)
dict4個支持:增加鍵(KEY)和值(Value)
刪除鍵(KEY)和值(Value)
基于鍵(KEY)改變值(Value)
基于鍵(KEY)查詢值(Value)
dict 2個注意:只能使用不可變類型作為鍵、通常不使用數(shù)字(int/float)作為建
3、如何聲明一個字典
方法一: 空值創(chuàng)建 dict_1 = dict()
方法二:空值創(chuàng)建 dict_2 = {}
方法三:非空值創(chuàng)建 dict _3 = {"姓名":'張三'}
dict _4 = dict({"姓名":'張三'})
dict _5 = dict("姓名" = '張三')
按照key:value 的格式可以建立多個鍵值對(items)的字典表
一個鍵和一個值叫鍵值對在python里這個叫一個item(全部字典表里的鍵值對那就是items)
字典表的語法規(guī)則{'NAME':"張三","age",18}
鍵值之間 冒號:分割 鍵值對(item)之間的分割使用,逗號
字典表加入列表和元組類型
{"NAME":("張三","李四")},'city':['BJ',‘HB']
注意列表 元組[ ] ( )外 不要加引號否則會轉(zhuǎn)成字符串
4、玩轉(zhuǎn)字典表
聲明創(chuàng)建一個基于個人信息的字典
info = {"姓名":'張三',"年齡",20}
字典表基本操作
增加數(shù)據(jù):info['性別'] = '男' 字典名[鍵] = 添加的值
修改數(shù)據(jù):info['年齡'] = 21 字典名[鍵] = 修改的值
查詢數(shù)據(jù):info['年齡'] 或 info.get("年齡")
刪除數(shù)據(jù): del info['年齡'] 或 info.pop("年齡") 或 info.clear() 清空字典
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(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)注官方微信