1. 程式人生 > >Python 基礎 - Day 2 Learning Note - 列表&元組

Python 基礎 - Day 2 Learning Note - 列表&元組

索引 import col 獨立 數據結構 如果 忽略 faye 個數

1. 列表 LIST

  • 定義列表

>>> alist=[‘Lydia‘,‘Miranda‘,‘Tony‘,‘Cody‘,‘Lorries‘]

>>> print(aList)

[‘Tom‘, ‘Ruby‘, ‘Eddie‘, ‘Eric‘]

  • 通過下標訪問列表中的元素

>>> alist[0]
‘Lydia‘
>>> alist[3]
‘Cody‘
>>> alist[-1]
‘Lorries‘
>>> alist[-4]
‘Miranda‘

  • 切片操作:取多個元素。 序列類型是其元素被順序放置的一種數據結構類型,這種方式允許通過指定下標的方式來獲得某一個數據元素,或者通過指定下標範圍來獲得一組序列的元素。( [],[:],[::])
aList = [‘Lori‘, ‘Martins‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]
print(aList[1:4]) # 自左向右,從0計數。取下標1至下標4之間的數字,包括1,不包括
[‘Martins‘, ‘Marcus‘, ‘Fayes‘]

print(aList[1:-1]) # 取下標1到下標-1的值,不包括-1. -1是ketty
[‘Martins‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘]
print(aList[0:3])
[‘Lori‘, ‘Martins‘, ‘Marcus‘]
print(aList[:3]) # 0可以忽略,和上句效果一樣
[‘Lori‘, ‘Martins‘, ‘Marcus‘]
print(aList[3:]) #如果想取到最後一個值,不能寫-1,只能這麽寫
[‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]
print(aList[3:-1]) #這樣下標-1的元素不會被包括
[‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘]

切片操作的擴展 - 步長索引
print(aList[::2]) # 第三個索引值2被用作步長參數,代表每隔1個元素就取一下
[‘Lori‘, ‘Marcus‘, ‘Anthony‘, ‘Miranda‘]
print(aList[::-1]) # 效果等同“reverse”操作
[‘Ketty‘, ‘Miranda‘, ‘Paul‘, ‘Anthony‘, ‘Fayes‘, ‘Marcus‘, ‘Martins‘, ‘Lori‘]
  • 追加 list.append

aList.append(‘追加‘)
print(aList)
[‘Lori‘, ‘Martins‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘, ‘追加‘]
  • 插入元素 list.insert

aList.insert(2,"插入")  #不能批量insert
print(aList)
[‘Lori‘, ‘Martins‘, ‘插入‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘, ‘追加‘]
  • 替換修改元素

aList[1]="修改" #替換原來的Martins
print(aList)
[‘Lori‘, ‘修改‘, ‘插入‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘, ‘追加‘]
  • 刪除元素

方法1 - list. remove("...")

aList.remove("Lori") #刪除方法1
print(aList)
[‘修改‘, ‘插入‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘, ‘追加‘]

方法2 - del
del aList[0]  #刪除方法2
print(aList)
[‘修改‘, ‘插入‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘, ‘追加‘]
方法3 - list.pop()
aList.pop()  #刪除方法3,默認最後一位
print(aList)[‘Lori‘, ‘修改‘, ‘插入‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]
  • 擴展(合並)list.extend(list1)

bList = [‘Wayne‘,‘Marcus‘]
aList.extend(bList)
print(aList)
[‘Lori‘, ‘Martins‘, ‘Marcus‘, ‘Fayes‘, ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘, ‘Wayne‘, ‘Marcus‘]

  • 獲取下標 list.index

print(aList.index("Marcus")) #獲取下標
2
print(aList[aList.index("Marcus")]) #對應獲取下標的打印元素
Marcus
  • 統計 list.count

print(aList.count("Marcus"))
2
  • 排序 list.sort

aList.sort()
print(aList)
[‘Anthony‘, ‘Fayes‘, ‘Ketty‘, ‘Lori‘, ‘Marcus‘, ‘Marcus‘, ‘Martins‘, ‘Miranda‘, ‘Paul‘, ‘Wayne‘]
  • 反轉 list.reverse

aList.reverse() #翻轉
print(aList)
[‘Wayne‘, ‘Paul‘, ‘Miranda‘, ‘Martins‘, ‘Marcus‘, ‘Marcus‘, ‘Lori‘, ‘Ketty‘, ‘Fayes‘, ‘Anthony‘]
  • 拷貝 - 淺copy

aList1 = aList.copy()
aList[2]=‘MARCUS WOO‘
aList[4][0]=‘alexander‘

print(aList)
[‘Lori‘, ‘Martins‘, ‘MARCUS WOO‘, ‘Fayes‘, [‘alexander‘, ‘pete‘], ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]
print(aList1) #淺copy, 只copy第一層。這是由於list的存儲方式導致的,alexander會改的原因是因為具有相同的內存地址。而第一層不是。
[‘Lori‘, ‘Martins‘, ‘Marcus‘, ‘Fayes‘, [‘alexander‘, ‘pete‘], ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]
  • 拷貝 - deepcopy 互相完全獨立

import copy
aList = [‘Lori‘, ‘Martins‘, ‘Marcus‘, ‘Fayes‘, [‘alex‘,‘pete‘],‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]

aList2 = copy.deepcopy(aList) #最終兩個list完全獨立
aList[2]=‘MARCUS WOO‘
aList[4][0]=‘alexander‘
print(aList)
[‘Lori‘, ‘Martins‘, ‘MARCUS WOO‘, ‘Fayes‘, [‘alexander‘, ‘pete‘], ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]
print(aList2)
[‘Lori‘, ‘Martins‘, ‘Marcus‘, ‘Fayes‘, [‘alex‘, ‘pete‘], ‘Anthony‘, ‘Paul‘, ‘Miranda‘, ‘Ketty‘]
  • 循環

for i in aList:
print(i)
Lori
Martins
Marcus
Fayes
Anthony
Paul
Miranda
Ketty

2. 元組 TUPLE

元祖是只讀列表, 即一旦創建不可修改。 列表用 [], 而元組用()。針對元祖,只可以用count 和 index

aTuple = (‘alex‘,‘jack‘)




Python 基礎 - Day 2 Learning Note - 列表&元組