[PYTHON] List 篇



< Assign >
# 指定空 list
lst = []
lst = list()
# 指定有元素的 list
# 型態可不一樣
lst = [1, '1', 1.0]
lst = [i for i in range(5)] # [0, 1, 2, 3, 4]
lst = [0] * 5 # [0, 0, 0, 0, 0] # 不可這樣:lst = [[]] * 5, 址會一樣
lst = [int(x) for x in input().split()]

< Index and Value >
index 索引值:
  • 主要作用為取值和修改。
  • 範圍: 1 ~ len(list)  1,大於 len(list)  1 會發生錯誤。
  • 範圍:1 ~ len(list),小於 len(list) 會發生錯誤。
value 值:
  • index 所對應到的值。
  • 可為任意型態。
用法:
lst = [2, '4', 6.0]
print(lst[0]) # index: 0, value: 2
print(lst[1]) # index: 1, value: '4'
print(lst[2]) # index: 2, value: 6.0

< Slice >
  • 取片段 list
  • lst[ start: stop: step ]start 預設是 0stop 預設是 len(list)step 預設是 1
用法:
lst = [1, 2, 3, 4, 5]
print(lst[3:]) # [4, 5] # 從 index: 3 開始到結束
print(lst[: 3]) # [1, 2, 3] # 從頭開始到 index: 3 結束
print(lst[:: 2]) # [1, 3, 5] # 從頭到尾, 間隔為 2


< Method >
  • append(object):將 object 加到 list 的末尾。
lst = []
print(lst) # []
lst.append(1)
print(lst) # [1]
lst.append(2)
print(lst) # [1, 2]
lst.append(3)
print(lst) # [1, 2, 3]
  • clear():從 list 刪除所有項目。
lst = [1, 2, 3]
lst.clear()
print(lst) # []
  • copy():回傳一個淺複製的 list
# 沒有使用 copy()
lst_1 = [1, 2, 3]
lst_2 = lst_1
lst_2[0] = 100 # 更改元素
print(lst_1) # [100, 2, 3]
print(lst_2) # [100, 2, 3]
# 使用 copy()
lst_1 = [1, 2, 3]
lst_2 = lst_1.copy()
lst_2[0] = 100 # 更改元素
print(lst_1) # [1, 2, 3]
print(lst_2) # [100, 2, 3]
  • count(value):回傳 value 出現的次數。
lst = [1, 2, 2, 3, 3, 3]
print(lst.count(1)) # 1
print(lst.count(2)) # 2
print(lst.count(3)) # 3
print(lst.count(4)) # 0
  • extend(iterable):透過附加 iterable 的元素來擴展 list
lst = [1, 2]
lst.extend([3, 4])
print(lst) # [1, 2, 3, 4]
  • index(value):回傳 valuelist 的第一個 index,若 value 不在 list,則會發生錯誤。
lst = [1, 2, 4]
print(lst.index(1)) # 0
print(lst.index(2)) # 1
print(lst.index(3)) # ValueError: 3 is not in list
  • insert(index, object):插入 objectindex 之前。
lst = [0, 2, 8]
lst.insert(2, 4)
print(lst) # [0, 2, 4, 8]
lst.insert(3, 6)
print(lst) # [0, 2, 4, 6, 8]
  • pop():若無參數,則刪除尾端元素;反之,刪除指定 index 的元素。若指定 index 超過 list 的長度則會發生錯誤。對於空的 list 使用 pop() 亦會發生錯誤。若成功執行,會回傳刪除的元素。
lst = [1, 2, 3, 4, 5]
print(lst.pop()) # 5
print(lst) # [1, 2, 3, 4]
lst = [1, 2, 3, 4, 5]
print(lst.pop(0)) # 1
print(lst) # [2, 3, 4, 5]
  • remove(value):刪除 valuelist 第一次出現的值。如果 value 不在 list 則會發生錯誤
lst = [1, 2, 2, 3]
lst.remove(2)
print(lst) # [1, 2, 3]
lst = [1, 2, 3]
lst.remove(4) # ValueError: list.remove(x): x not in list
  • reverse():將 list 反轉。
lst = [1, 2, 3]
lst.reverse()
print(lst) # [3, 2, 1]
  • sort():數字型態不可和字串形態排序。若無參數,則將 list 由小到大排序。參數可有 keyreversekey可以依照喜好方法排序,reverse 預設是 False,可以改成 True,設為由大到小排序。
lst = [5, 1, 3, 2, 4]
lst.sort()
print(lst) # [1, 2, 3, 4, 5]
lst = [5, 1, 3, 2, 4]
lst.sort(reverse = True) # 由大到小排序
print(lst) # [5, 4, 3, 2, 1]
lst = [5, 1, 3, 2, 4]
lst.sort(key = lambda z: (z % 3, z)) # 根據 (z % 3, z) 排序
print(lst) # [3, 1, 4, 2, 5]

< Function >
  • len(list):回傳 list 的長度。
lst = [1, 2, 3, 4, 5]
print(len(lst)) # 5
  • max(list):回傳 list 的最大值。
lst = [1, 2, 3, 4, 5]
print(max(lst)) # 5
  • min(list):回傳 list 的最小值。
lst = [1, 2, 3, 4, 5]
print(min(lst)) # 1
  • sum(list):回傳 list 的總和。
lst = [1, 2, 3, 4, 5]
print(sum(lst)) # 15

< Traversal >
  • 使用 range()len()index
lst = [1, 2, 3, 4, 5]
for i in range(len(lst)):
    print('index:', i, 'value:', lst[i])
'''
index: 0 value: 1
index: 1 value: 2
index: 2 value: 3
index: 3 value: 4
index: 4 value: 5
'''
  • 直接迭代。
lst = [1, 2, 3, 4, 5]
for v in lst:
   print(v)
'''
1
2
3
4
5
'''
  • 使用 enumerate,以 indexvalue 迭代。
lst = [1, 2, 3, 4, 5]
for i, v in enumerate(lst):
    print('index:', i, 'value:', v)
'''
index: 0 value: 1
index: 1 value: 2
index: 2 value: 3
index: 3 value: 4
index: 4 value: 5
'''



以上,
若有更好的想法歡迎提出哦!

留言

熱門文章