list:串列[ ],有序可變動列表,例如 grades=[12, 60, 5, 70, 90]
tuple:元組( ),有序不可變動列表,例如 data=(3, 4, 5)
list跟tuple都可以儲存一組有序的資料,差別在於list可以變更裡面的數據,tuple不行,如果有些資料是固定的,為避免後續開發導致資料變動,可以將它存在tuple裡面
list跟tuple的順序都是從0開始計算的,例如 grades=[12, 60, 5, 70, 90],12代表第0位,90代表第4位
grades=[12, 60, 5, 70, 90]
print(grades[0])
print(grades[4])
應用場景
這邊就不細分list跟tuple了,寫在一起,只要方法有變更到資料,tuple不是作用的對象
用來存一組相關聯的數據,可以是數字、字串等
data1 = [1, 2, 3]
data2 = [4, 5, 6]
names = ["Ben", "Luisa", "Lisa"]
用來走訪跟疊代元素,執行一系列的運作
data = (10, 20, 30)
for item in data:
print(item)
----結果----
10
20
30
運用def 把存好的資料在需要的時候使用
import requests
def usdt_twd_api(url, headers=None, body=None):
if headers is None:
headers = {}
if body is None:
body = {}
if body:
response = requests.post(url, headers=headers, json=body)
else:
response = requests.get(url, headers=headers)
return response
----省略一些運算,詳情可以看 用Python呼叫API (四):呼叫API模組化----
response = usdt_twd_api(url, headers=headers, body=body)
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
#篩選偶數
even_numbers = [x for x in numbers if x % 2 == 0]
print(even_numbers)
#篩選奇數
odd_numbers = [x for x in numbers if x % 2 != 0]
print(odd_numbers)
----結果----
[2, 4, 6, 8, 10]
[1, 3, 5, 7, 9]
其中的x代表變數,這個變數從for來的,提取的範圍是numbers這個list,也就是說它代表著numbers中每一個元素,後面增加了條件式if,%代表著x除以2的餘數,餘數等於0表示能夠被2整除,也就是偶數,不等於就是奇數
在串列後面增加一個新的元素,這個元素可以是任何的資料型態,只接受一個元素,如果餵另外一個列表給他會變成是套在裡面的元素
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers.append(13)
print(numbers)
----結果----
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13]
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers.append([5, 6])
print(numbers)
----結果----
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, [5, 6]]
在串列後面逐個增加新的元素,也因為它是逐個接受,所以可以接收列表
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers.extend([5, 6])
print(numbers)
----結果----
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 5, 6]
串列添加元素,在指定的位置,添加指定的元素,可以是任何形式的資料
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
numbers.insert(3, "pikachu")
numbers.insert(0, 3)
numbers.insert(9, True)
numbers.insert(7 ,[3, 3, 3])
----結果----
[3, 1, 2, 3, 'pikachu', 4, 5, [3, 3, 3], 6, 7, True, 8, 9, 10]
刪除指定值的第一個元素,不管位置
numbers = [3, 1, 2, 3, 'pikachu', 4, 5, [3, 3, 3], 6, 7, True, 8, 9, 10]
numbers.remove(3)
print(numbers)
----結果----
[1, 2, 3, 'pikachu', 4, 5, [3, 3, 3], 6, 7, True, 8, 9, 10]
如果想要全刪3得加入迴圈重複執行
numbers = [3, 1, 2, 3, 'pikachu', 4, 5, [3, 3, 3], 6, 7, True, 8, 9, 10]
remove_numbers = 3
while remove_numbers in numbers:
numbers.remove(remove_numbers)
print(numbers)
----結果----
[1, 2, 'pikachu', 4, 5, [3, 3, 3], 6, 7, True, 8, 9, 10]
[3, 3, 3]不是3,是[3, 3, 3],所以沒有被刪掉
清空元素
numbers = [3, 1, 2, 3, 'pikachu', 4, 5, [3, 3, 3], 6, 7, True, 8, 9, 10]
numbers.clear()
print(numbers)
----結果----
[]
刪除指定索引的元素,並返回值
numbers = [1, 2, 3, 4, 5]
numbers_pop = numbers.pop(3)
print(numbers)
print(numbers_pop)
----結果----
#numbers的值
[1, 2, 3, 5]
#numbers_pop的值
4
刪除指定索引的元素,跟pop的差別是沒有返回值
numbers = [1, 2, 3, 4, 5]
del numbers(2)
print(numbers)
----結果----
[1, 2, 4, 5]
其他的下篇繼續