在使用Python的時候,經常會用到列表,列表(list)就是動態(tài)數組,相當于C++標準庫的Vector。但不同的是,Python的列表可以存儲多種數據類型于一身,非常強大。
下面介紹幾種Python列表的常用用法:
一.列表的創(chuàng)建:
使用[]把數據包含起來,便可以創(chuàng)建一個列表了。
1.[]可以不包含任何數據,則表示創(chuàng)建一個空列表
>>>name=[]
2.[]也可以包含多種數據類型的數據
>>>name=["damao",30,"ermao"]
二.列表的打印:
1.使用內置函數print()便可打印整個列表里的數據”
>>>print(name)
["damao",30,"ermao"]
2.當然也可以打印列表的某個下標的數據:
>>>print(name[0])
damao
3.也可以分片打印列表的某段下標的數據
>>>print(name[0:2])
['damao',30]#注意,沒有打印name[2]的數據:)
4.如果想要分別打印列表里的每個數據,只需要一個for就可以搞定:
>>>foreachinname:
print(each)
damao
30
ermao
5.當然也可以直接打印出列表內數據的個數:
>>>print(len(name))
3
三、列表的擴展:
1.我們可以在列表末尾追加一個任意數據類型數據:
>>>name.append(["daoluan",666])
>>>print(name)
['damao',30,'ermao',['daoluan',666]]
2.也可以在列表末尾追加一個列表里的所有數據:
>>>name.extend(["sanmao",10,"simao"])
>>>print(name)
['damao',30,'ermao',['daoluan',666],'sanmao',10,'simao']
#注意,append和entend這兩個方法看起來有些類似,但實際上是不同的。append只接受一個參數,但是這個參數可以是任意數據類型,比如列表和元組等,而且只是將這個數據追加到原列表后面獨立存在。
extend也是只接受一個參數,不同的是這個參數必須是一個列表,而且會把這個列表的每個元素拆分出來,依次追加到原列表后面。
3.當然也可以在指定位置增加一個任意數據類型數據(append的既視感):
#第一個參數為指定的列表下標,第二個參數為增加的數據
>>>name.insert(3,20)
>>>print(name)
['damao',30,'ermao',20,['daoluan',666],'sanmao',10,'simao']
四、列表的刪除:
1.刪除列表末尾的一個數據:
>>>name.pop()
>>>print(name)
['damao',30,'ermao',20,['daoluan',666],'sanmao',10]
2.也可以刪除列表指定的某一個數據:
>>>name.remove("sanmao")
>>>print(name)
['damao',30,'ermao',20,['daoluan',666],10]
3.或者刪除列表的某個下標的數據:
>>>del(name[4])
>>>print(name)
['damao',30,'ermao',20,10]
#注意,de()函數支持列表分片刪除,同樣的,也支持刪除整個列表。
五、列表的合并:
只需要像I+I+I=III一樣,就可以合并多個列表:
>>>mao=name+[20,"ermao"]+[30,"damao"]
>>>print(mao)
['damao',30,'ermao',20,10,20,'ermao',30,'damao']
六、列表的排序:
首先,列表里的每個元素類型相同才可以進行排序,對此我們可以選擇手寫排序算法,也可以選擇Pythoy提供的更簡便且強大的的方法:sort()和sorted()
1.原地排序:
>>>fruit=["banana","pear","orange","apple"]
>>>fruit.sort()
>>>print(fruit)
['apple','banana','orange','pear']
#sort()方法可以在原列表的基礎上進行排序,同時改變原列表的順序。
2.復制排序:
>>>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()函數通過復制排序可以對幾乎任何數據結構排序,同時返回一個新的排序后的數據結構,而且不會改變原數據結構的序列。
#注意,不管使用sort()還是使用sorted(),默認都是升序排序。如果想按照降序排序,只要傳入reverse=True參數就可以啦,比如fruit.sort(reverse=True)或者newNums=sorted(nums,reverse=True)