python的多元數(shù)據(jù)類型(上)
什么是列表list
列表是python中最基本的數(shù)據(jù)結(jié)構(gòu),列表中的每個(gè)元素都分配一個(gè)數(shù)字——即當(dāng)前數(shù)據(jù)的位置,或索引,第一個(gè)索引是0第二個(gè)索引是1,依次類推
*列表是個(gè)“筐”什么也可以往里裝。數(shù)據(jù)一多了就形成了結(jié)構(gòu)。列表list是數(shù)據(jù)集合的一種形式
#列表是一個(gè)有序的、可變的數(shù)據(jù)結(jié)構(gòu)/類型
1.聲明一個(gè)列表list
方法一: 空值創(chuàng)建 list_data = list()
方法二: 空值創(chuàng)建 list_data = [ ]
列表之間使用 , 分隔 ,頭尾使用方括弧 [ ]
列表的語法規(guī)則 [“中國”,‘SHENZHEN',44,True,1.0]
列表添加其他類型數(shù)據(jù)(嵌套)[{“name”:“l(fā)ike”,“age”:4}, (1,2),[1,3,4]]
特別注意:
1、列表內(nèi)的每個(gè)元素(數(shù)據(jù)),遵守該數(shù)據(jù)類型的原有規(guī)則。比如字符串類型是要加引號(hào)""
2、可以有多層嵌套,每一層嵌套為一個(gè)獨(dú)立體存在
2.列表list支持什么數(shù)據(jù)類型
name = “l(fā)ike” 字符串Str
age = 18 整數(shù) Int
height=1.74 浮點(diǎn)Float
is_yes=True 布爾Bool
pets=[“?!?“虎”,“兔”] 列表List
work_cities= (“北京”,“上?!?“廣州”) 元組Tuple
teacher={“姓名”:“張三”} 字典Dict
3.列表list的基本特性
增加 :支持空列表創(chuàng)建 、支持列表數(shù)據(jù)更新(添加)
刪除 :支持列表整體刪除、支持列表元素刪除、支持切片刪除
修改:支持列表數(shù)據(jù)修改(基于下標(biāo)、索引、index)
查詢:支持列表數(shù)據(jù)查詢(基于下標(biāo)、索引、index)、支持切片查詢、支持第一級(jí)元素長度統(tǒng)計(jì)(len)
personal_info= ['張三',"男"]
#列表基本操作
#增加數(shù)據(jù)
personal_info.append(18)
最后一位追加>>>['張三',"男",18]
personal_info.insert(1,1.80)
基于索引位置插入數(shù)據(jù)>>>['張三',1.80,"男",18]
#修改數(shù)據(jù)
personal_info[1] = 1.90
基于索引位置修改數(shù)據(jù)>>>['張三',1.90,"男",18]
personal_info[2:4] = ["女",19]
基于索引范圍修改數(shù)據(jù)>>>['張三',1.90,"女",19]
#查詢數(shù)據(jù)
personal_info[1]
基于索引位置修改數(shù)據(jù)>>> 1.90
personal_info[2:4]
基于索引范圍修改數(shù)據(jù)>>>["女",19]
#刪除數(shù)據(jù)
personal_info.pop(1)
基于索引刪除數(shù)據(jù)>>>['張三',"女",19]
personal_info.remove(19)
基于值刪除數(shù)據(jù)>>>['張三',"女"]
del personal_info[0:2]
基于索引位置刪除>>>[]
personal_info.clear()
清空全部列表元素>>>[]
del personal_info
刪除整個(gè)列表>>>[]
*特別注意
1、修改數(shù)據(jù)和查詢數(shù)據(jù)”一線間“
2、圈定范圍修改列表數(shù)據(jù)時(shí),需要保證添加的數(shù)據(jù)為可迭代對(duì)象
3、注意pop()默認(rèn)為刪除最后一位,可指定索引位置,并返回被刪除的值
4、remove()基于值/數(shù)據(jù)刪除數(shù)據(jù),刪除的是第一個(gè)匹配的數(shù)據(jù),并非所有
#列表合并
num_1 =[1,2,3]
num_2 =[5,6,7,8]
num_sum =num_1 + num_2
>>>[1,2,3,5,6,7,8]
num_1.extend(num_2)
特別注意 extend()會(huì)改變當(dāng)前變量內(nèi)的值>>>[1,2,3,5,6,7,8]
#列表排序
num_sum =num_2 + num_1
>>>[5,6,7,8,1,2,3,]
num_sum.sort()
正序>>>[1,2,3,5,6,7,8]
num_sum.sort(reverse = True)
倒序>>>[8,7,6,5,3,2,1]
sort()會(huì)直接改變當(dāng)前變量內(nèi)的值
#列表反轉(zhuǎn)
msg = ['好',"好","學(xué)","習(xí)"]
msg.reverse()
>>>["習(xí)","學(xué)","好","好"]
#元素?cái)?shù)據(jù)統(tǒng)計(jì)
msg.count("好")
>>>2
#自身復(fù)制
msg = msg * 2
msg>>>['好',"好","學(xué)","習(xí)",'好',"好","學(xué)","習(xí)"]
#列表的長度
len(msg)
>>>8
#列表的復(fù)制
num = [[1,2,3],[6,7]]
id(num)
>>> 4567867877
id(num[0])
>>> 4598080890 (同)
#淺復(fù)制
num_X = num.copy()
id(num_X)
>>> 4567867800
id(num_X[0])
>>> 4598080890 (同)
#深復(fù)制
import copy
num_Y = copy.deepcopy(num)
id(num_Y)
>>> 4567867800
id(num_Y[0])
>>> 4598080999 (不同)
#包含關(guān)系判斷
msg = ["好","好",'學(xué)','習(xí)']
"習(xí)" in msg
>>>True
僅支持當(dāng)前層級(jí)判斷
#切片延申
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),為從頭到尾的范圍
#list在程序中的書寫
#單列表
list = ["哈士奇","薩摩","柴犬","泰迪"]
列表這個(gè)數(shù)據(jù)類型的性質(zhì)決定了它通常內(nèi)部存在數(shù)據(jù)比較長,書寫的時(shí)候會(huì)超出屏幕邊界,所以可以換行:
list = ["哈士奇",
"薩摩",
"柴犬",
"泰迪"
]
注意對(duì)齊,好看清晰明了
#嵌套列表
list = [
['拍黃瓜','大拌菜','小蔥拌豆腐'],
['白酒','啤酒','紅酒'],
['橘子','香蕉','蘋果'],
]
一組數(shù)據(jù)里有高度、有寬度可以叫做:
1、矩陣
2、二維數(shù)組
#列表與for循環(huán)
#初級(jí)難度
dogs = ["哈士奇",
"薩摩",
"柴犬"
]
for dog in dogs:
print(dog)
第一次:哈士奇
第二次:薩摩
第三次:柴犬
#中級(jí)難度
menus = [
['拍黃瓜','大拌菜','小蔥拌豆腐'],
['白酒','啤酒','紅酒'],
['橘子','香蕉','蘋果'],
]
for menu in menus:
print(menu)
第一次:['拍黃瓜','大拌菜','小蔥拌豆腐']
第二次:['白酒','啤酒','紅酒']
第三次:['橘子','香蕉','蘋果']
#高級(jí)難度
menus = [
['拍黃瓜','大拌菜','小蔥拌豆腐'],
['白酒','啤酒','紅酒'],
['橘子','香蕉','蘋果'],
]
for menu in menus:
print(menu)
for food in menu:
print(food)
第一次:['拍黃瓜','大拌菜','小蔥拌豆腐']
內(nèi)循環(huán)第一次:'拍黃瓜'
內(nèi)循環(huán)第二次:'大拌菜'
內(nèi)循環(huán)第三次:'小蔥拌豆腐'
第二次:['白酒','啤酒','紅酒']
內(nèi)循環(huán)第一次:'白酒'
內(nèi)循環(huán)第二次:'啤酒'
內(nèi)循環(huán)第三次:'紅酒'
第三次:['橘子','香蕉','蘋果']
內(nèi)循環(huán)第一次:'橘子'
內(nèi)循環(huán)第二次:'香蕉'
內(nèi)循環(huán)第三次:'蘋果'
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信