iT邦幫忙

2023 iThome 鐵人賽

DAY 6
0
Software Development

Python 微進階系列 第 6

Python 微進階 Day06 - tuple(元組)、set(集合)

  • 分享至 

  • xImage
  •  

tuple

  • 使用 ()tuple() 建立
  • ()False
  • 有序的(sequence),不可以改變內容與大小
  • 單 1 個時要加 ,a = (1,)
  • 處理方法幾乎都跟 list 相同
a = (1)
a = (1,)
a = ([1, 2],)
a = ({"a":1},)

# 1         # <class 'int'>
# (1,)      # <class 'tuple'>
# ([1, 2],) # <class 'tuple'>
# ({"a":1},)# <class 'tuple'>

解包、打包

  • 解包:將右側的結果一一分配到左側對應的變數
  • 打包:將右側的結果包成一個 tuple
  • 常用變數分配到指定參數
    • 不常用的變數命名 _
    • 多出的參數集中在一個變數加 *
  • 變數值互換,以往可能需要再設一個變數來當中間值
  • 應用在函式回傳多變數結果或接收函式的多個結果
打包
x = (1, 2, 3)    # tuple packing

解包
(a, b, c) = x    # tuple unpacking
a, b, c = [1, 2, 3]
print(a, b, c)
# 1 2 3

a, b, *c = [1, 2, 3, 4]
print(a, b, c)
# 1 2 [3, 4]
(x, y) = (y, x)


def get_error_details():
    return (2, 'details')

(errnum, errstr) = get_error_details()

set

  • 使用 set() 建立
  • 使用 {} 會變空 dict
  • setFalse
  • 無序的,不重複,重複的刪除,可以改變內容與大小
  • 如果是 dict,只會保留 key
  • 常用來挑選出唯一的值
  • 是否有某值使用 某值 in set()某值 not in set()
  • 可用來計算 2 組 set 間的集合運算,如交集、聯集、差集、對稱差集等
# 單一字串要改成元組
s = set("apple")
# {"l", "e", "p", "a"}

s = set(("apple",))
# {"apple"}

s = set(("apple", "banana"))
# {"apple", "banana"}
a = set([1, 2, 3, 3, 2])
# {1, 2, 3}

a = set({"x":1,"y":2,"z":3})
# {"x", "y", "z"}

參考資料

次回

來聊聊 dict 吧!


上一篇
Python 微進階 Day05 - list(串列)
下一篇
Python 微進階 Day07 - dict(字典)
系列文
Python 微進階31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言