一.列表
1.什么是列表(list)
列表是Python提供的容器型數(shù)據(jù)類型
可變 - 列表中的每個(gè)元素的值可變赊颠,列表的長度可變侣监,列表中的元素順序可變。
有序 - 每個(gè)元素可以通過下標(biāo)來確定位置歪沃。
2.列表的字面量:通過[]括起來嗦锐,里面有多個(gè)元素,用逗號(hào)隔開沪曙。
[1,2,3]
[10,'abc',True]
num=100;[num,200]
[]--空列表
注意:列表元素的類型可以是任何Python支持的數(shù)據(jù)類型奕污;并且同一列表中可以有不同的元素類型。
3.獲取列表元素(和字符串獲取字符的元素一樣)
a.獲取單個(gè)元素
列表[下標(biāo)]
- 獲取列表中制定下標(biāo)對(duì)應(yīng)的元素
b.獲取部分切片元素(切片)
列表[開始下標(biāo):結(jié)束下標(biāo):步長]
c.一個(gè)一個(gè)的取出所有元素(遍歷)
可以使用for循環(huán)直接遍歷列表拿到每一個(gè)元素:(操作時(shí)和下標(biāo)無關(guān))
通過遍歷列表中列表元素對(duì)應(yīng)的下標(biāo)來遍歷列表元素
4.增(添加列表元素)
a.append
列表.append(元素)
- 指定的列表元素后邊添加指定的元素
b.insert
列表.insert(下標(biāo)珊蟀,元素)
- 在指定的下標(biāo)前插入指定的元素
5.刪(刪除元素)
a.del
del 列表[下標(biāo)]
- 刪除列表中指定下標(biāo)指定元素
注意:del是Python關(guān)鍵字菊值,可以刪除任何元素 ,這兒下標(biāo)不能越界
b.remove
列表.remove(元素)
只刪最前面的一個(gè)
c.pop
列表.pop()
- -將列表中最后一個(gè)元素從列表中取出育灸,會(huì)返回取出來的元素 -(注意:這個(gè)操作不會(huì)產(chǎn)生新的列表)
列表.pop(下標(biāo))
-- 將列表中指定元素從列表中取出腻窒,會(huì)返回取出來的元素
(注意:這個(gè)操作不會(huì)產(chǎn)生新的列表)
坑一: 遍歷列表刪除部分元素,刪不全磅崭! --- 遍歷的時(shí)候?qū)υ斜砬衅?/h3>
練習(xí):統(tǒng)計(jì)一個(gè)班的學(xué)生的年齡(控制臺(tái)不斷不輸入年齡的值儿子,直到輸入end為止),刪除年齡小于18歲的年齡砸喻。
str=[]
age= input('年齡;')
while age !='end':
str.append(int(age))
age=input("年齡:")
print(str)
str1=str[:]
print(str1)
for i in str:
if i<18:
str1.remove(i)
print(str1)
ages=[12,13,20,18,30,10]
index=0
new_ages=[]
while index<len(ages):
age=ages[index]
if age<18:
del_item=ages.pop(index)
new_ages.append(del_item)
else:
index += 1 #不需要?jiǎng)h除的時(shí)候下標(biāo)才增加
print(ages,new_ages)
坑二:通過下標(biāo)遍歷列表柔逼,刪除元素的時(shí)候;下標(biāo)越界和元素獲取不全
解決辦法:下標(biāo)對(duì)應(yīng)的元素需要?jiǎng)h除割岛,下標(biāo)值不動(dòng):不會(huì)刪除下標(biāo)加1
6.改(修改元素的值)
列表[下標(biāo)] = 新值
---修改列表指定下標(biāo)對(duì)應(yīng)的值
list1=[1,2,3]
list1[0]='abc'
print(list1)
7.相關(guān)運(yùn)算
(1).相關(guān)運(yùn)算:+愉适,*
a.數(shù)學(xué)運(yùn)算
列表1+列表2 -將兩個(gè)列表中元素合并在一起產(chǎn)生一個(gè)新的列表
列表*N - 列表中的元素重復(fù)N次,產(chǎn)生一個(gè)新的列表
b.比較運(yùn)算
比較大小和字符串比較原理相等
print([1,2,3]+['a','b','c'])
print([1,2,3]==[1,2,3])
print([1,2,3]==[3,2,1])
(2).in/ not in
元素 in 列表 -- - 判斷列表中是否存在指定的元素
print([1,2] in [1,2,3])
print([1,2] in [[1,2],30,'abc'])
(3).len
len(列表) - 獲取列表中元素的個(gè)數(shù)
print(len([[1,'a'],2,'100',True]))
(4).list
list(數(shù)據(jù)) - 將其他數(shù)據(jù)轉(zhuǎn)換成列表癣漆;只有序列才能轉(zhuǎn)換成列表维咸,并且所有的序列都能轉(zhuǎn)化成為列表
轉(zhuǎn)換的時(shí)候是將所有的元素轉(zhuǎn)換成列表的元素
list=10 #注意:不能Python給我們提供的類型的名字來命名,否則會(huì)有隱患
list3=('hello')
print(list3)
list4=list(range(11,20))
print(list4)
(5).序列其他方法
max(序列) - 獲取序列中最大元素
min(序列) - 獲取序列中最小的元素
sum(序列) - 求序列中所有元素之和
注意:以上三個(gè)方法惠爽,要求序列中的元素必須一致癌蓖,并且這個(gè)類型支持比較運(yùn)算和加法運(yùn)算
print(max([19,89,999,2,0.2]))
print(min([19,89,999,2,0.2]))
二.列表方法
1.list,count(obj)
ages = [12, 13, 20, 18, 30, 10,12,12]
print(ages.count(12))
2.list.extend(seq) 末尾追加列表
ages = [12, 13, 20, 18, 30, 10,12,12]
ages1=[1,2,3]
ages.extend(ages1)
print(ages)
3.list.reverse() 反向列表中元素
ages = [12, 13, 20, 18, 30, 10,12,12]
ages.reverse()
print(ages)