Python 的 for 迴圈是一種迭代控制結構,用於遍歷可迭代對象(如列表、元組、字典、字串等)中的每個元素
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
#apple
banana
cherry
Tuple 解構是一種將 Tuple 中的元素同時賦值給多個變量的語法糖。它讓你可以更方便地處理 Tuple 中的元素。
person = ("Alice", 30, "New York")
name, age, city = person
print(name) # 输出: Alice
print(age) # 输出: 30
print(city) # 输出: New York
當 Tuple 中包含多個元素時,我們可以利用 Tuple 解構,在 for 迴圈中直接將 Tuple 中的元素賦值給不同的變量。
students = [
("Alice", 90),
("Bob", 85),
("Charlie", 92)
]
for name, score in students:
print(f"{name}'s score is {score}")
#Alice's score is 90
Bob's score is 85
Charlie's score is 92
這段代碼中,students 是一個包含多個 Tuple 的列表,每個 Tuple 代表一個學生,包含姓名和成績。在 for 迴圈中,我們將每個 Tuple 解構為 name 和 score 兩個變量,然後進行處理。
# 嵌套 Tuple
coordinates = [(1, 2), (3, 4), (5, 6)]
for x, y in coordinates:
print(f"({x}, {y})")
# 不等長 Tuple 與 _
data = [(1, 2, 3), (4, 5), (6, 7, 8, 9)]
for a, b, *rest in data:
print(a, b, rest)
#1 2 [3]
4 5 []
6 7 [8, 9]
*rest 的作用是將 Tuple 中多餘的元素收集到一個新的列表中。因此,當 Tuple 中的元素數量超過 a 和 b 能夠接收的數量時,多餘的元素就會被放在 rest 所代表的列表中。
第一個 Tuple: (1, 2, 3)
a 接收 1
b 接收 2
rest 接收 [3],因為 3 是多餘的元素。
第二個 Tuple: (4, 5)
a 接收 4
b 接收 5
rest 接收空列表 [],因為沒有多餘的元素。
第三個 Tuple: (6, 7, 8, 9)
a 接收 6
b 接收 7
rest 接收 [8, 9],因為 8 和 9 是多餘的元素。
因此,在輸出結果中,當 rest 包含元素時,就會以列表的形式顯示,例如 [3]、[8, 9]。而當 rest 為空列表時,雖然不會顯示任何內容,但它的存在還是會佔用一個位置。
收集多餘元素: 當 Tuple 中的元素數量超過變量數量時,*rest 會將多餘的元素收集成一個列表。
靈活處理不同長度的 Tuple: 即使 Tuple 的長度不同,也能通過 *rest 來統一處理。
解構時忽略部分元素: 如果只需要 Tuple 的前幾個元素,可以使用 _ 來忽略後面的元素。