python基礎:高級數據類型:列表

列表的創建: 列表和數組有着很大的相似之處,列表由一系列按照特定順序排列的元素組成。列表的元素可以是任意的,其中的元素可以沒有任何的關係。

在python中,列表用方括號([ ])來表示,並用逗號來分隔其中的元素。
如:a = [1,“name”,b],c = [1,2,2,3,4],d = [“a”,“b”,“c”]……

如果你讓python打印一個列表,它將是這樣的:

>>> bicycles = ['trek', 'cannondale', 'redline', 'specialized']
>>> print(bicycles)
['trek', 'cannondale', 'redline', 'specialized']

可以看到方括號也被打印了出來,這表明了bicycles變量是一個列表類型。

訪問列表元素: 列表元素的訪問和數組一樣,使用索引值訪問列表元素:

>>> print(bicycles[0])
trek
>>> print(bicycles[3])
redline

要注意,索引值是從0開始的,在計算機中,0經常被用來表示第一個的意思。

python提供了反向訪問的機制,如果你給出的索引值是-1的話,python將訪問最後一個列表元素;如果是-2的話,倒數第二個元素將被訪問;以此類推。

>>> print(bicycles[-1])
specialized
>>> print(bicycles[-3])
cannondale

你可以使用索引值在列表中取出你所需要的數據進行使用,同時你也可以對取出的數據進行操作,這都是被允許的。

>>> print("My bicycle is a " + bicycles[0].title() + ".")
My bicycle is a Trek.

修改列表元素: 修改列表元素十分簡單,你只需要將對應的索引值賦予新的值就可以將對應索引值的元素改爲新的值:

>>> bicycles[0] = 'ducati'
>>> print(bicycles[0])
ducati

在列表中添加元素: 在列表中添加元素分兩種,一種是在列表末尾添加元素,使用append()方法,接收一個待添加元素的參數。

>>> bicycles.append('suzuki')
>>> print(bicycles)
['ducati', 'cannondale', 'redline', 'specialized', 'suzuki']

可以看到’suzuki’被添加到了列表末尾。

另一種可以在列表的任意位置插入元素,使用insert()方法,接收一個索引值和待插入元素。

>>> bicycles.insert(0, 'honda')
>>> print(bicycles)
['honda', 'ducati', 'cannondale', 'redline', 'specialized', 'suzuki']

可以看到待插入元素添加到了索引值元素的前面。

從列表中刪除元素: 刪除列表中的元素的方法有多種:
1、使用del語句進行刪除:

>>> del bicycles[1]
>>> print(bicycles)
['honda', 'cannondale', 'redline', 'specialized', 'suzuki']

對比上一段代碼可以看到第二個元素被刪除了。

2、使用pop()方法進行刪除:

>>> bicycles.pop()
'suzuki'
>>> print(bicycles)
['honda', 'cannondale', 'redline', 'specialized']

如果你沒有給pop方法一個元素索引值參數,該方法會刪除列表的最後一個元素並返回這個元素。

同時pop()方法也可以指定要刪除的元素,你需要給pop()方法傳入要刪除元素的索引值:

>>> bicycles.pop(2)
'redline'
>>> print(bicycles)
['honda', 'cannondale', 'specialized']

方法仍然會返回被刪除元素。

3、根據值刪除元素:
有事你並不會事先知道列表中要刪除的值所在的位置,這時你可以使用remove()方法對列表元素進行刪除:

>>> bicycles.remove('honda')
>>> print(bicycles)
['cannondale', 'specialized']

remove()方法並沒有返回值,同時remove()方法只能刪除在列表中靠前的所能找到的第一個具有該值的元素,如果要刪除的值在列表中出現了多次,就不能一次性的刪除完,你需要一個循環來判斷該值是否全部被刪除。

組織列表: 組織列表將會對列表進行排序,在python中簡單的列表排序工作可以使用一個方法來快速完成:

1、使用sort()方法對列表進行永久性排序。
sort()方法將元素從小到大進行排序:

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> cars.sort()
>>> print(cars)
['audi', 'bmw', 'subaru', 'toyota']

先來說排序的規則:當列表元素都是字符串時,python將會先按第一個字符的ASCII值的大小來對它們排序,如果第一個字符的ASCII值相等,那就看第二個字符的ASCII以此類推。如果一個元素被包含於另一個元素,則這個元素小於包含元素,如’abc’ < ‘abcd’。

sort()方法沒有返回值,排序過後會改變原列表元素的位置,不管你什麼時候,在何位置訪問這個列表它都將會是被排序過的。

2、使用sorted()對列表進行臨時排序。
如果你只想將列表臨時排一下順序,並不想永久的改變原列表,你可以使用sorted()方法。該方法接收一個列表,返回一個被排序過的列表,你可以創建一個列表變量接收它,並且原列表的元素順序是不被改變的。

>>> cars = ['bmw', 'audi', 'toyota', 'subaru']
>>> gets = sorted(cars)
>>> print(cars)
['bmw', 'audi', 'toyota', 'subaru']
>>> print(gets)
['audi', 'bmw', 'subaru', 'toyota']

可以看到gets列表獲得了cars排序過後的列表,而cars列表的元素位置沒有被改變。

**倒着打印列表:**要反轉列表的排列可以使用方法reverse(),該方法可以反轉列表元素,並放回原列表,這種改變也是永久性的,但是想要變回原來的列表也很容易,你只需要再次將列表反轉即可:

>>> gets.reverse()
>>> print(gets)
['toyota', 'subaru', 'bmw', 'audi']
>>> gets.reverse()
>>> print(gets)
['audi', 'bmw', 'subaru', 'toyota']

確定列表的長度: 使用函數len()可以快速獲得列表的元素個數,即列表的長度:

>>> len(gets)
4

獲取列表的長度讓你可以知道列表中有幾個元素,也可以以此來避免使用列表時造成索引值超過列表長度的問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章