iT邦幫忙

0

Python for in 迴圈與 Tuple 解構

  • 分享至 

  • xImage
  •  

Python for in 迴圈

Python 的 for 迴圈是一種迭代控制結構,用於遍歷可迭代對象(如列表、元組、字典、字串等)中的每個元素

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
#apple
banana
cherry

Tuple 解構

Tuple 解構是一種將 Tuple 中的元素同時賦值給多個變量的語法糖。它讓你可以更方便地處理 Tuple 中的元素。

person = ("Alice", 30, "New York")
name, age, city = person
print(name)  # 输出: Alice
print(age)   # 输出: 30
print(city)  # 输出: New York

將 Tuple 解構與 for 迴圈結合

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

為什麼 print 會有 []?深入剖析 Tuple 解構與 *rest

*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 為空列表時,雖然不會顯示任何內容,但它的存在還是會佔用一個位置。

*rest 的作用

收集多餘元素: 當 Tuple 中的元素數量超過變量數量時,*rest 會將多餘的元素收集成一個列表。
靈活處理不同長度的 Tuple: 即使 Tuple 的長度不同,也能通過 *rest 來統一處理。
解構時忽略部分元素: 如果只需要 Tuple 的前幾個元素,可以使用 _ 來忽略後面的元素。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言