Python雙冒號意思

在Python中,「雙冒號」(::)通常用於表示「字典推導式」或「集合推導式」的開始和結束。以下分別解釋這兩種用法:

  1. 字典推導式 (Dictionary Comprehension) 字典推導式是用來建立一個新的字典,其鍵和值可以是基於一個疊代對象或表達式的結果。字典推導式的格式如下:
{key_expr: value_expr for source_iterable in target_iterable if condition}

這裡,key_expr 是用來產生字典鍵的表達式,value_expr 是用來產生字典值的表達式,source_iterabletarget_iterable 是疊代對象,condition 是條件表達式(可選)。

例如:

# 建立一個字典,其鍵是列表中的元素,值是元素的平方
squares = {x: x**2 for x in range(10)}
print(squares)

輸出:

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
  1. 集合推導式 (Set Comprehension) 集合推導式是用來建立一個新的集合,其元素可以是基於一個疊代對象或表達式的結果。集合推導式的格式如下:
{expression for item in iterable}

這裡,expression 是生成集合元素的表達式,item 是疊代對象中的元素。

例如:

# 建立一個集合,包含列表中所有奇數元素
odd_numbers = {x for x in range(10) if x % 2 == 1}
print(odd_numbers)

輸出:

{1, 3, 5, 7, 9}

總結來說,「雙冒號」在Python中是用來定義字典推導式或集合推導式的開始和結束,它們提供了創建字典和集合的一種簡潔方式。