python中列表(list)的基本操作
阿新 • • 發佈:2019-02-19
列表
建立和訪問列表
bicycle = ['trek', 'cannondale', 'redline','specialized']
print bicycle
print bicycle[0] # 下標從0開始
print bicycle[-1] # 最後一個元素
print bicycle[:1]
print bicycle[1:3]
print bicycle[0].title() # 首字母大寫
message = 'My first bicycle was a '+bicycle[0].title()+'.'
print message
['trek', 'cannondale', 'redline', 'specialized'] trek specialized ['trek'] ['cannondale', 'redline'] Trek My first bicycle was a Trek.
修改、新增和刪除元素
## 修改指定元素
bicycle = ['trek', 'cannondale', 'redline','specialized']
bicycle[1] = 'baoma'
bicycle[2:] = ['baoma','haima']
print bicycle
['trek', 'baoma', 'baoma', 'haima']
## 新增元素
bicycle.append('xiaodao') # 末尾新增
print bicycle
bicycle.insert(1,'bb') # 指定位置插入
print bicycle
['trek', 'baoma', 'baoma', 'haima', 'xiaodao'] ['trek', 'bb', 'baoma', 'baoma', 'haima', 'xiaodao']
## 刪除元素
bicycle = ['trek0', 'trek1','trek2','trek3','trek4','trek5']
del bicycle[1]
print bicycle
bicycle_pop = bicycle.pop() # 相當於從列表中取出最後一個元素,此時列表中不再有該元素
print bicycle_pop
print bicycle
bicycle_pop0 = bicycle.pop(0) # 取出指定位置的元素,此時列表中不再有該元素
print bicycle_pop0
print bicycle
bicycle.remove('trek3' ) # 用於不知道具體的索引位置,只知道具體的值
print bicycle
['trek0', 'trek2', 'trek3', 'trek4', 'trek5']
trek5
['trek0', 'trek2', 'trek3', 'trek4']
trek0
['trek2', 'trek3', 'trek4']
['trek2', 'trek4']
列表操作
## sort永久性排序
cars = ['bwm','audi','toyota','subaru']
cars.sort() # 對列表進行永久性排序(改變了列表本身)
print cars
cars = ['bwm','audi','toyota','subaru']
cars.sort(reverse=True) #設定排序時是否倒序
print cars
## sorted臨時排序
cars = ['bwm','audi','toyota','subaru']
print sorted(cars) # 列表自身元素未發生改變
print cars
['audi', 'bwm', 'subaru', 'toyota']
['toyota', 'subaru', 'bwm', 'audi']
['audi', 'bwm', 'subaru', 'toyota']
['bwm', 'audi', 'toyota', 'subaru']
## 倒著列印列表
cars = ['bwm','audi','toyota','subaru']
print cars
cars.reverse() #列表元素順序被翻轉(再呼叫一次即可恢復原來順序)
print cars
## 確定列表長度
print len(cars)
['bwm', 'audi', 'toyota', 'subaru']
['subaru', 'toyota', 'audi', 'bwm']
4
## 建立數值列表
number1 = list(range(1,6))
print number1
number2 = list(range(1,11,2))
print number2
[1, 2, 3, 4, 5]
[1, 3, 5, 7, 9]
## 通過迴圈建立所需列表
squares1 = []
for value in range(1,11,2):
square = value**2
squares1.append(square)
print squares1
squares2 = [value**2 for value in range(1,11,2)]
print squares2
[1, 9, 25, 49, 81]
[1, 9, 25, 49, 81]
## 對數字列表進行簡單的統計計算
digits = [1,2,3,4,5]
print min(digits)
print max(digits)
print sum(digits)
1
5
15
## 切片
players = ['aaa','bbb','ccc','ddd','eee','fff']
print players[0:3]
print players[:3]
print players[3:]
print players[:-3]
print players[-3:]
## 遍歷
players = ['aaa','bbb','ccc','ddd','eee','fff']
for player in players[:3]:
print player.title()
## 複製(注意兩種複製結果的不同)
print '--------------------------------------------'
players = ['aaa','bbb','ccc','ddd','eee','fff']
players_copy1 = players[:]# 產生兩個列表(兩個列表複製後無關係)
print players_copy1
players.append('ggg1')
players_copy1.append('ggg2')
print players
print players_copy1
print '------------------'
players = ['aaa','bbb','ccc','ddd','eee','fff']
players_copy2 = players # 產生同一個列表的副本,變動一個列表,另一個也會變動
print players_copy2
players.append('ggg1')
players_copy2.append('ggg2')
print players
print players_copy2
['aaa', 'bbb', 'ccc']
['aaa', 'bbb', 'ccc']
['ddd', 'eee', 'fff']
['aaa', 'bbb', 'ccc']
['ddd', 'eee', 'fff']
Aaa
Bbb
Ccc
--------------------------------------------
['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']
['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg1']
['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg2']
------------------
['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff']
['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg1', 'ggg2']
['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff', 'ggg1', 'ggg2']
元祖(不可變的列表)
## 定義元祖
dims = (20,50)
print dims[0],dims[1]
print type(dims)
##元祖不可改
dims[1] = 30 # 此處會報錯
20 50
<type 'tuple'>
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-d402c31a1fde> in <module>()
5
6 ##元祖不可改
----> 7 dims[1] = 30 # 此處會報錯
TypeError: 'tuple' object does not support item assignment
## 遍歷元祖
dims = (10,20,30,40)
for dim in dims:
print dim
10
20
30
40
## 元祖賦值(注意不同於元祖修改)
dims = (10,20,30)
print dims
dims = (40,50,60) # 此時整個元祖的所有元素被新的元素覆蓋
print dims
(10, 20, 30)
(40, 50, 60)