更新時間:2017-11-10 來源:黑馬程序員 瀏覽量:
在使用Python的時候,經(jīng)常會用到列表,列表(list)就是動態(tài)數(shù)組,相當(dāng)于C++標(biāo)準(zhǔn)庫的Vector。但不同的是,Python的列表可以存儲多種數(shù)據(jù)類型于一身,非常強大。
下面介紹幾種Python列表的常用用法:
一. 列表的創(chuàng)建:
使用 [ ] 把數(shù)據(jù)包含起來,便可以創(chuàng)建一個列表了。
1. [ ] 可以不包含任何數(shù)據(jù),則表示創(chuàng)建一個空列表
>>> name = []
2. [ ] 也可以包含多種數(shù)據(jù)類型的數(shù)據(jù)
>>> name = ["damao", 30, "ermao"]
二. 列表的打?。?/p>
1. 使用內(nèi)置函數(shù)print() 便可打印整個列表里的數(shù)據(jù)”
>>> print(name)
["damao", 30, "ermao"]
2. 當(dāng)然也可以打印列表的某個下標(biāo)的數(shù)據(jù):
>>> print(name[0])
damao
3. 也可以分片打印列表的某段下標(biāo)的數(shù)據(jù)
>>> print(name[0:2])
['damao', 30] #注意,沒有打印name[2]的數(shù)據(jù):)
4. 如果想要分別打印列表里的每個數(shù)據(jù),只需要一個for就可以搞定:
>>> for each in name:
print(each)
damao
30
ermao
5. 當(dāng)然也可以直接打印出列表內(nèi)數(shù)據(jù)的個數(shù):
>>> print(len(name))
三、列表的擴展:
1. 我們可以在列表末尾追加一個任意數(shù)據(jù)類型數(shù)據(jù):
>>> name.append(["daoluan", 666])
>>> print(name)
['damao', 30, 'ermao', ['daoluan', 666]]
2. 也可以在列表末尾追加一個列表里的所有數(shù)據(jù):
>>> name.extend(["sanmao", 10, "simao"])
>>> print(name)
['damao', 30, 'ermao', ['daoluan', 666], 'sanmao', 10, 'simao']
#注意,append和entend這兩個方法看起來有些類似,但實際上是不同的。append只接受一個參數(shù),但是這個參數(shù)可以是任意數(shù)據(jù)類型,比如列表和元組等,而且只是將這個數(shù)據(jù)追加到原列表后面獨立存在。
extend也是只接受一個參數(shù),不同的是這個參數(shù)必須是一個列表,而且會把這個列表的每個元素拆分出來,依次追加到原列表后面。
3. 當(dāng)然也可以在指定位置增加一個任意數(shù)據(jù)類型數(shù)據(jù)(append的既視感):
# 第一個參數(shù)為指定的列表下標(biāo),第二個參數(shù)為增加的數(shù)據(jù)
>>> name.insert(3, 20)
>>> print(name)
['damao', 30, 'ermao', 20, ['daoluan', 666], 'sanmao', 10, 'simao']
四、列表的刪除:
1. 刪除列表末尾的一個數(shù)據(jù):
>>> name.pop()
>>> print(name)
['damao', 30, 'ermao', 20, ['daoluan', 666], 'sanmao', 10]
2. 也可以刪除列表指定的某一個數(shù)據(jù):
>>> name.remove("sanmao")
>>> print(name)
['damao', 30, 'ermao', 20, ['daoluan', 666], 10]
3. 或者刪除列表的某個下標(biāo)的數(shù)據(jù):
>>> del(name[4])
>>> print(name)
['damao', 30, 'ermao', 20, 10]
#注意,de()函數(shù)支持列表分片刪除,同樣的,也支持刪除整個列表。
五、列表的合并:
只需要像I + I + I = III一樣,就可以合并多個列表:
>>> mao = name + [20, "ermao"] + [30, "damao"]
>>> print(mao)
['damao', 30, 'ermao', 20, 10, 20, 'ermao', 30, 'damao']
六、列表的排序:
首先,列表里的每個元素類型相同才可以進(jìn)行排序,對此我們可以選擇手寫排序算法,也可以選擇Pythoy提供的更簡便且強大的的方法:sort()和sorted()
1. 原地排序:
>>> fruit = ["banana", "pear", "orange", "apple"]
>>> fruit.sort()
>>> print(fruit)
['apple', 'banana', 'orange', 'pear']
# sort() 方法可以在原列表的基礎(chǔ)上進(jìn)行排序,同時改變原列表的順序。
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ù)制排序可以對幾乎任何數(shù)據(jù)結(jié)構(gòu)排序,同時返回一個新的排序后的數(shù)據(jù)結(jié)構(gòu),而且不會改變原數(shù)據(jù)結(jié)構(gòu)的序列。
#注意,不管使用sort()還是使用sorted(),默認(rèn)都是升序排序。如果想按照降序排序,只要傳入 reverse = True 參數(shù)就可以啦,比如 fruit.sort(reverse = True) 或者 newNums = sorted(nums, reverse = True)
好了,今天的Python小知識就到這里了,希望大家有所收獲!輕松愉快,就算Python!【注:需要更多免費學(xué)習(xí)視頻+資料+源碼,請加QQ:2632311208】
本文版權(quán)歸黑馬程序員Python學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明作者出處。謝謝!
作者:黑馬程序員Python培訓(xùn)學(xué)院
首發(fā):http://python.itheima.com/