2023-09-17|閱讀時間 ‧ 約 8 分鐘

【筆記】Python的資料型態:list、tuple(上)

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整除,也就是偶數,不等於就是奇數


常使用的函式


append

在串列後面增加一個新的元素,這個元素可以是任何的資料型態,只接受一個元素,如果餵另外一個列表給他會變成是套在裡面的元素

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]]


extend

在串列後面逐個增加新的元素,也因為它是逐個接受,所以可以接收列表

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]


insert

串列添加元素,在指定的位置,添加指定的元素,可以是任何形式的資料

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]


remove

刪除指定值的第一個元素,不管位置

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],所以沒有被刪掉


clear

清空元素

numbers = [3, 1, 2, 3, 'pikachu', 4, 5, [3, 3, 3], 6, 7, True, 8, 9, 10]
numbers.clear()
print(numbers)

----結果----
[]


pop

刪除指定索引的元素,並返回值

numbers = [1, 2, 3, 4, 5]
numbers_pop = ​numbers.pop(3)

print(numbers)
print(numbers_pop)

----結果----
#numbers的值
[1, 2, 3, 5]

#numbers_pop的值
4


del

刪除指定索引的元素,跟pop的差別是沒有返回值

numbers = [1, 2, 3, 4, 5]
del numbers(2)
print(numbers)

----結果----

[1, 2, 4, 5]


其他的下篇繼續





分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.