python-3-列表簡介
列表簡介
列表是什麼
列表由一系列按特定順序排列的元素組成。你可以建立包含字母表中所有的字母、數字0~9或所有家庭成員姓名的列表;也可以將任何東西加入列表中,其中的元素之間可以沒有任何關係。鑑於列表通常包含多個元素,給列表指定一個表示複數的名稱是一個不錯的主意。
在linux中,用方括號[]來表示列表,並用都好來分隔其中的元素。下面是幾個簡單的示例:
>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> print(bicycle)
如果你讓python把列表打印出來就是
['trek', 'cannondale', 'redline', 'pecialized']
訪問列表元素
列表是有序集合,因此要訪問列表的任何元素,只需將該元素的位置或索引告訴python即可。要訪問列表元素,可指出列表的名稱,再指出元素的索引,並將其放在方括號內:
例如下面從bicycle中提取第一款自行車
>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> printf(bicycle[0])
執行結果
>>> print(bicycle[0])
trek
當你訪問列元素時,python只返回該元素,而不包括方括號和引號。
還可以對字串呼叫第二章的字串方法
>>> print(bicycle[0].title())
輸出:
>>> print(bicycle[0].title())
Trek
索引從0而不是1開始
這和大多數程式語言一樣,此處不再贅述。
python有一種特殊的方法
>>> print(bicycle[-1])
可以直接訪問到列表的倒數第一個元素,-2可以訪問到列表倒數第二個元素
使用列表中的各個值
可像使用其他變數一樣使用列表中的值,下面是一個示例
>>> bicycle = ['trek','cannondale','redline','pecialized'] >>> message="My first bicycle was a " + bicycle[0].title() + '.' >>> print(message) My first bicycle was a Trek.
修改、新增和刪除元素
你建立的大多數列表都是動態的,這意味著列表建立後,將隨著程式的執行增刪元素。
修改列表元素:
>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> print(bicycle)
['trek', 'cannondale', 'redline', 'pecialized']
>>> bicycle[0]='modify'
>>> print(bicycle)
['modify', 'cannondale', 'redline', 'pecialized']
在列表中新增元素:
-
在表尾新增元素
>>> bicycle = ['trek','cannondale','redline','pecialized'] >>> bicycle.append('new') >>> print(bicycle) ['trek', 'cannondale', 'redline', 'pecialized', 'new']
方法append()將元素‘new’新增到了表尾,而不影響其他元素,使得動態建立列表易如反掌
-
在列表中插入元素
使用方法insert()可在列表的任意位置新增新元素。為此,你需要指定新元素的索引和值
>>> bicycle = ['trek','cannondale','redline','pecialized'] >>> bicycle.insert(1,'new') >>> print(bicycle) ['trek', 'new', 'cannondale', 'redline', 'pecialized']
方法insert()在索引處新增空間,並將‘new’儲存到這個地方。這種操作將列表中既有的每個元素都右移一個位置。
從列表中刪除一個元素
-
使用del語句刪除元素
前提是要知道要刪除元素在列表中的位置
>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> del bicycle[0]
>>> print(bicycle)
['cannondale', 'redline', 'pecialized']
- 使用方法pop刪除元素
方法pop()來源於棧的彈出,使用方法pop()將會直接刪除列表末尾的元素,還可以獲得它的值
>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> v1=bicycle.pop()
>>> print(v1)
pecialized
>>> print(bicycle)
['trek', 'cannondale', 'redline']
- 彈出列表中任意位置的元素
實際上,你可以使用pop()方法彈出列表中任意位置的元素,只要在括號中加上索引即可
>>> bicycle = ['trek','cannondale','redline','pecialized']
>>> v1=bicycle.pop(1)
>>> print(v1)
cannondale
>>> print(bicycle)
['trek', 'redline', 'pecialized']
pop()和del語句的區別是,當你使用pop()時,你可以得到刪除資料的值。
-
根據值刪除元素
remove()
>>> bicycle = ['trek','cannondale','redline','pecialized'] >>> bicycle.remove('redline') >>> print(bicycle) ['trek', 'cannondale', 'pecialized']
如果列表有多個remove()指定的值,只會刪除第一個指定的值
>>> bicycle = ['trek','cannondale','redline','pecialized','redline']
>>> print(bicycle)
['trek', 'cannondale', 'redline', 'pecialized', 'redline']
>>> bicycle.remove('redline')
>>> print(bicycle)
['trek', 'cannondale', 'pecialized', 'redline']
組織列表
-
使用方法sort()對列表進行永久性排序
>>> cars = ['bmw','audi','toyota','subaru'] >>> cars.sort() >>> print(cars) ['audi', 'bmw', 'subaru', 'toyota']
注意:sort()方法永久的改變了列表元素的排列順序
如果想要按字母順序相反的順序排序,只需想sort()方法傳遞引數reverse=True
>>> cars = ['bmw','audi','toyota','subaru'] >>> cars.sort(reverse=true) Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'true' is not defined >>> cars.sort(reverse=True) >>> print(cars) ['toyota', 'subaru', 'bmw', 'audi']
注意:這裡的True首字母必須是大寫的
- 使用sorted()方法對列表進行臨時的排序,也可以向sorted()傳遞引數使得排序反向
>>> cars = ['bmw','audi','toyota','subaru'] >>> print(sorted(cars)) ['audi', 'bmw', 'subaru', 'toyota'] >>> cars = ['bmw','audi','toyota','subaru'] >>> print(cars) ['bmw', 'audi', 'toyota', 'subaru'] >>> print(sorted(cars)) ['audi', 'bmw', 'subaru', 'toyota'] >>> print(cars) ['bmw', 'audi', 'toyota', 'subaru'] >>> print(sorted(cars,reverse=True)) ['toyota', 'subaru', 'bmw', 'audi']
-
倒著列印列表
可以使用方法reverse()
>>> cars = ['bmw','audi','toyota','subaru'] >>> cars.reverse() >>> print(cars) ['subaru', 'toyota', 'audi', 'bmw']
注意:reverse()不是按與字幕順序嫌犯的順序來排序列表元素,而只是飯莊列表元素的排列順序。
方法reverse()永久性的修改列表元素的排列順序,但可隨時恢復到原來的排列順序,只需要對列表再次呼叫reverse()方法即可
-
確定列表長度
len()函式
>>> cars = ['bmw','audi','toyota','subaru'] >>> len(cars) 4
python計算列表元素數時從1開始,因此確定列表長度時,你應該不會遇到差一錯誤。