1. 程式人生 > >python中列表(list)的基本操作

python中列表(list)的基本操作

列表

建立和訪問列表

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)