小猿圈python學(xué)習(xí)-細(xì)講數(shù)據(jù)類(lèi)型-列表

第一章我們大概介紹了列表的基本用法,本節(jié)我們學(xué)習(xí)下

定義:[]內(nèi)以逗號(hào)分隔,按照索引,存放各種數(shù)據(jù)類(lèi)型,每個(gè)位置代表一個(gè)元素

再回顧下列表的特點(diǎn):

1.可存放多個(gè)值

2.按照從左到右的順序定義列表元素,下標(biāo)從0開(kāi)始順序訪問(wèn),有序


3.可修改指定索引位置對(duì)應(yīng)的值,可變

列表的增加操作

追加,數(shù)據(jù)會(huì)追加到尾部

>>> names

['alex', 'jack']

>>> names.append("rain")

>>> names.append("eva")

>>>

>>> names

['alex', 'jack', 'rain', 'eva']

插入,可插入任何位置

>>> names.insert(2,"黑姑娘")

>>> names

['alex', 'jack', '黑姑娘', 'rain', 'eva']

>>>

合并,可以把另一外列表的值合并進(jìn)來(lái)

>>> n2 = ["狗蛋","綠毛","雞頭"]

>>> names

['alex', 'jack', '黑姑娘', 'rain', 'eva']

>>> names.extend(n2)

>>> names

['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '綠毛', '雞頭']

列表嵌套

>>> names.insert(2,[1,2,3])

>>> names

['alex', 'jack', [1, 2, 3], '黑姑娘', 'rain', 'eva', '狗蛋', '綠毛', '雞頭']

>>> names[2][1]

2


刪除操作

del 直接刪

>>> names

['alex', 'jack', [1, 2, 3], '黑姑娘', 'rain', 'eva', '狗蛋', '綠毛', '雞頭']

>>> del names[2]

>>> names

['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '綠毛', '雞頭']

pop 刪

>>> names

['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '綠毛', '雞頭']

>>> names.pop() #默認(rèn)刪除最后一個(gè)元素并返回被刪除的值

'雞頭'

>>> names

['alex', 'jack', '黑姑娘', 'rain', 'eva', '狗蛋', '綠毛']

>>> help(names.pop)

>>> names.pop(1)? #刪除指定元素

'jack'

clear 清空

>>> n2

['狗蛋', '綠毛', '雞頭']

>>> n2.clear()

>>> n2

[]

修改操作

>>> names

['alex', '黑姑娘', 'rain', 'eva', '狗蛋', '綠毛']

>>> names[0] = "金角大王"

>>> names[-1] = "銀角大王"

>>> names

['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '銀角大王']

查操作

>>> names

['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '銀角大王', 'eva']

>>>

>>> names.index("eva") #返回從左開(kāi)始匹配到的第一個(gè)eva的索引

3

>>> names.count("eva") #返回eva的個(gè)數(shù)

2

切片

切片就像切面包,可以同時(shí)取出元素的多個(gè)值?

names[start:end]

>>> names

['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '銀角大王', 'eva']

>>> names[1:4]? #不包含下標(biāo)4的元素

['黑姑娘', 'rain', 'eva']

*切片的特性是顧頭不顧尾,即start的元素會(huì)被包含,end-1是實(shí)際取出來(lái)的值?

倒著切

>>> names[-5:-1]

['rain', 'eva', '狗蛋', '銀角大王']

但其實(shí)我想要的是后5個(gè),只打印了4個(gè),'eva'這個(gè)值沒(méi)出來(lái),為什么,因?yàn)樯厦嫣岬降念欘^不顧尾

可是想把后5個(gè)全取出來(lái)如何做呢??

>>> names[-5:]

['rain', 'eva', '狗蛋', '銀角大王', 'eva']

如果取前幾個(gè)值 ,一樣可以把:號(hào)左邊的省掉

>>> names

['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '銀角大王', 'eva']

>>> names[0:3]

['金角大王', '黑姑娘', 'rain']

>>> names[:3]? #跟上面一樣的效果

['金角大王', '黑姑娘', 'rain']

步長(zhǎng),?允許跳著取值

names[start:end:step] #step 默認(rèn)是1

>>> a

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a[0:7:2]? #設(shè)置步長(zhǎng)為2

[0, 2, 4, 6]

>>> a

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>>

>>> a[::3] #按步長(zhǎng)3打印列表,第1個(gè):是省略掉的start:end

[0, 3, 6, 9]

列表反轉(zhuǎn)

>>> a[::-1] #通過(guò)把步長(zhǎng)設(shè)置成負(fù)值,可達(dá)到列表返轉(zhuǎn)的效果

[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> a[::-2]

[9, 7, 5, 3, 1]

排序&反轉(zhuǎn)

排序

>>> a = [83,4,2,4,6,19,33,21]

>>> a.sort()

>>> a

[2, 4, 4, 6, 19, 21, 33, 83]

下面的排序結(jié)果為何如何解釋?zhuān)?/p>

>>> names=['金角大王', 'rain', '@', '黑姑娘', '狗蛋', "4","#",'銀角大王', 'eva']

>>> names.sort()

>>> names

['#', '4', '@', 'eva', 'rain', '狗蛋', '金角大王', '銀角大王', '黑姑娘']

答案全在這張表上,雖然后面我們會(huì)講,但現(xiàn)在先知道,排序的優(yōu)化級(jí)規(guī)則是按這張表來(lái)的

反轉(zhuǎn)

>>> names

['#', '4', '@', 'eva', 'rain', '狗蛋', '金角大王', '銀角大王', '黑姑娘']

>>> names.reverse()

>>> names

['黑姑娘', '銀角大王', '金角大王', '狗蛋', 'rain', 'eva', '@', '4', '#']


循環(huán)列表

>>> for i in names:?

...? ? print(i)

...

黑姑娘

銀角大王

金角大王

狗蛋

rain

eva

@

4

#


練習(xí)

針對(duì)列表names=['金角大王', '黑姑娘', 'rain', 'eva', '狗蛋', '銀角大王', 'eva','雞頭']進(jìn)入以下操作

通過(guò)names.index()的方法返回第2個(gè)eva的索引值

把以上的列表通過(guò)切片的形式實(shí)現(xiàn)反轉(zhuǎn)

打印列表中所有下標(biāo)為奇數(shù)的值?

通過(guò)names.index()方法找到第2個(gè)eva值 ,并將其改成EVA


編程練習(xí)-購(gòu)物車(chē)程序開(kāi)發(fā)

根據(jù)以下數(shù)據(jù)結(jié)構(gòu):

goods = [

{"name": "電腦", "price": 1999},

{"name": "鼠標(biāo)", "price": 10},

{"name": "游艇", "price": 20},

{"name": "美女", "price": 998},

......

]

實(shí)現(xiàn)功能要求:

1、啟動(dòng)程序后,讓用戶(hù)輸入工資,然后進(jìn)入循環(huán),打印商品列表和編號(hào)

2、允許用戶(hù)根據(jù)商品編號(hào)選擇商品

3、用戶(hù)選擇商品后,檢測(cè)余額是否夠,夠就直接扣款,并加入購(gòu)物車(chē), 不夠就提醒余額不足

4、可隨時(shí)退出,退出時(shí),打印已購(gòu)買(mǎi)商品和余額

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容