首頁技術(shù)文章正文

Python列表的6種操作實(shí)例

更新時(shí)間:2017-11-10 來源:黑馬程序員 瀏覽量:

在使用Python的時(shí)候,經(jīng)常會(huì)用到列表,列表(list)就是動(dòng)態(tài)數(shù)組,相當(dāng)于C++標(biāo)準(zhǔn)庫的Vector。但不同的是,Python的列表可以存儲(chǔ)多種數(shù)據(jù)類型于一身,非常強(qiáng)大。

下面介紹幾種Python列表的常用用法:

一. 列表的創(chuàng)建:

使用 [ ] 把數(shù)據(jù)包含起來,便可以創(chuàng)建一個(gè)列表了。

1. [ ] 可以不包含任何數(shù)據(jù),則表示創(chuàng)建一個(gè)空列表

>>> name = []

2. [ ] 也可以包含多種數(shù)據(jù)類型的數(shù)據(jù)

>>> name = ["damao", 30, "ermao"]

二. 列表的打印:

1. 使用內(nèi)置函數(shù)print() 便可打印整個(gè)列表里的數(shù)據(jù)”

>>> print(name)

["damao", 30, "ermao"]

2. 當(dāng)然也可以打印列表的某個(gè)下標(biāo)的數(shù)據(jù):

>>> print(name[0])

damao

3. 也可以分片打印列表的某段下標(biāo)的數(shù)據(jù)

>>> print(name[0:2])

['damao', 30] #注意,沒有打印name[2]的數(shù)據(jù):)

4. 如果想要分別打印列表里的每個(gè)數(shù)據(jù),只需要一個(gè)for就可以搞定:

>>> for each in name:

print(each)

damao

30

ermao

5. 當(dāng)然也可以直接打印出列表內(nèi)數(shù)據(jù)的個(gè)數(shù):

>>> print(len(name))

三、列表的擴(kuò)展:

1. 我們可以在列表末尾追加一個(gè)任意數(shù)據(jù)類型數(shù)據(jù):

>>> name.append(["daoluan", 666])

>>> print(name)

['damao', 30, 'ermao', ['daoluan', 666]]

2. 也可以在列表末尾追加一個(gè)列表里的所有數(shù)據(jù):

>>> name.extend(["sanmao", 10, "simao"])

>>> print(name)

['damao', 30, 'ermao', ['daoluan', 666], 'sanmao', 10, 'simao']

#注意,append和entend這兩個(gè)方法看起來有些類似,但實(shí)際上是不同的。append只接受一個(gè)參數(shù),但是這個(gè)參數(shù)可以是任意數(shù)據(jù)類型,比如列表和元組等,而且只是將這個(gè)數(shù)據(jù)追加到原列表后面獨(dú)立存在。

extend也是只接受一個(gè)參數(shù),不同的是這個(gè)參數(shù)必須是一個(gè)列表,而且會(huì)把這個(gè)列表的每個(gè)元素拆分出來,依次追加到原列表后面。

3. 當(dāng)然也可以在指定位置增加一個(gè)任意數(shù)據(jù)類型數(shù)據(jù)(append的既視感):

# 第一個(gè)參數(shù)為指定的列表下標(biāo),第二個(gè)參數(shù)為增加的數(shù)據(jù)

>>> name.insert(3, 20)

>>> print(name)

['damao', 30, 'ermao', 20, ['daoluan', 666], 'sanmao', 10, 'simao']

四、列表的刪除:

1. 刪除列表末尾的一個(gè)數(shù)據(jù):

>>> name.pop()

>>> print(name)

['damao', 30, 'ermao', 20, ['daoluan', 666], 'sanmao', 10]

2. 也可以刪除列表指定的某一個(gè)數(shù)據(jù):

>>> name.remove("sanmao")

>>> print(name)

['damao', 30, 'ermao', 20, ['daoluan', 666], 10]

3. 或者刪除列表的某個(gè)下標(biāo)的數(shù)據(jù):

>>> del(name[4])

>>> print(name)

['damao', 30, 'ermao', 20, 10]

#注意,de()函數(shù)支持列表分片刪除,同樣的,也支持刪除整個(gè)列表。

五、列表的合并:

只需要像I + I + I = III一樣,就可以合并多個(gè)列表:

>>> mao = name + [20, "ermao"] + [30, "damao"]

>>> print(mao)

['damao', 30, 'ermao', 20, 10, 20, 'ermao', 30, 'damao']

六、列表的排序:

首先,列表里的每個(gè)元素類型相同才可以進(jìn)行排序,對(duì)此我們可以選擇手寫排序算法,也可以選擇Pythoy提供的更簡便且強(qiáng)大的的方法:sort()和sorted()

1. 原地排序:

>>> fruit = ["banana", "pear", "orange", "apple"]

>>> fruit.sort()

>>> print(fruit)

['apple', 'banana', 'orange', 'pear']

# sort() 方法可以在原列表的基礎(chǔ)上進(jìn)行排序,同時(shí)改變?cè)斜淼捻樞颉?/p>

2. 復(fù)制排序:

>>> nums = [23, 12, -34, 0, 101, 2]

>>>newNums = sorted(nums)

>>> print(newNums)

[-34, 0, 2, 12, 23, 101]

>>> print(nums)

[23, 12, -34, 0, 101, 2]

# sorted() 函數(shù)通過復(fù)制排序可以對(duì)幾乎任何數(shù)據(jù)結(jié)構(gòu)排序,同時(shí)返回一個(gè)新的排序后的數(shù)據(jù)結(jié)構(gòu),而且不會(huì)改變?cè)瓟?shù)據(jù)結(jié)構(gòu)的序列。

#注意,不管使用sort()還是使用sorted(),默認(rèn)都是升序排序。如果想按照降序排序,只要傳入 reverse = True 參數(shù)就可以啦,比如 fruit.sort(reverse = True) 或者 newNums = sorted(nums, reverse = True)

好了,今天的Python小知識(shí)就到這里了,希望大家有所收獲!輕松愉快,就算Python!【注:需要更多免費(fèi)學(xué)習(xí)視頻+資料+源碼,請(qǐng)加QQ:2632311208】


本文版權(quán)歸黑馬程序員Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!


作者:黑馬程序員Python培訓(xùn)學(xué)院


首發(fā):http://python.itheima.com/


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!