python的多元數(shù)據(jù)類型(下)
元組
1.什么是元組tuple
元組tuple像是一個list,但是它內(nèi)部的值不可被修改。元組是一個有序的、不可變數(shù)據(jù)結(jié)構(gòu)/類型
注意列表和元組之間一個有趣的關(guān)系:
列表 >> 元組 為加鎖
元組 >> 列表 為解鎖
支持元組和列表互相轉(zhuǎn)換
元組是一個保險柜,數(shù)據(jù)進(jìn)入就是安全的
列表和元組的對比:
為什么需要有元組?
1、元組tuple對于大型數(shù)據(jù)處理速度優(yōu)于列表list,如果你有一個常量集需要經(jīng)常遍歷(for),那么元組的效率優(yōu)于列表
2、元組tuple由于其無法“寫入”的特點(diǎn),放在元組內(nèi)部的數(shù)據(jù)自然就有一個“寫保護(hù)”,類似我們sd卡、cf卡或者部分U盤
3、特別注意:當(dāng)函數(shù)(方法)返回的數(shù)據(jù)大于一個時,一般以元組形式返回
4、特別注意:由于元組的“寫保護(hù)”模式,函數(shù)可以按照元組內(nèi)部元素的位置順序接受元組的數(shù)據(jù)
2.元組tuple支持什么數(shù)據(jù)類型
元組支持不可變的數(shù)據(jù)類型 :字符串str、整數(shù)int 、浮點(diǎn)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、可以有多層嵌套,每一層嵌套為一個獨(dú)立體存在 3、元組的“寫保護(hù)”只保護(hù)一級數(shù)據(jù),如["like",29]是元組的一個元素,這個元素內(nèi)的元素可以按照列表的方式進(jìn)行增刪改查操作,如果元組內(nèi)還是元組,那么即為元組的規(guī)則,無法“寫入”操作
5.玩轉(zhuǎn)元組tuple
聲明創(chuàng)建一個機(jī)遇個人信息的元組:
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、元組的嵌套 元組和元組嵌套與列表與列表嵌套的差異: 元組中的列表可以按照列表的特征進(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、初級難度 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、浮點(diǎn)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)容!
相關(guān)文章
python之基數(shù)排序的實(shí)現(xiàn)
這篇文章主要介紹了python之基數(shù)排序的實(shí)現(xiàn),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07Python如何通過內(nèi)存管理提升程序執(zhí)行效率
Python提供了自動內(nèi)存管理的功能,但是如果不小心使用,可能會導(dǎo)致內(nèi)存泄漏和性能問題,所以巧妙使用內(nèi)存管理是提高Python執(zhí)行效率的關(guān)鍵,下面就來和大家仔細(xì)講講Python的內(nèi)存管理技巧吧2023-06-06python實(shí)現(xiàn)MySQL指定表增量同步數(shù)據(jù)到clickhouse的腳本
這篇文章主要介紹了python實(shí)現(xiàn)MySQL指定表增量同步數(shù)據(jù)到clickhouse的腳本,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02Python 調(diào)用 zabbix api的方法示例
這篇文章主要介紹了Python 調(diào)用 zabbix api的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-01-01tkinter動態(tài)顯示時間的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了tkinter動態(tài)顯示時間的兩種實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法
這篇文章主要介紹了tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04