Python list()和tuple()函數用法

2020-07-16 10:04:42
前面己經提到,列表與元組最大的區別在於:元組是不可改變的,列表是可改變的。元組支援的操作,列表基本上都支援;列表支援對元素的修改,而元組則不支援。從這個角度來看,可以認為列表是增強版的元組。

雖然大部分時候都可使用列表來代替元組,但如果程式不需要修改列表所包含的元素,那麼使用元組代替列表會更安全。

list() 函數

除使用前面介紹的方括號語法建立列表之外,Python 還提供了一個內建的 list() 函數來建立列表,list() 函數可用於將元組、區間(range)等物件轉換為列表。

例如如下程式碼:
a_tuple = ('crazyit', 20, -1.2)
# 將元組轉換成列表
a_list = list(a_tuple)
print(a_list)
# 使用range()函數建立區間(range)物件
a_range = range(1, 5)
print(a_range) # range(1, 5)
# 將區間轉換成列表
b_list = list(a_range)
print(b_list) #[1, 2, 3, 4]
# 建立區間時還指定步長
c_list = list(range(4, 20, 3))
print(c_list) # [4, 7, 10, 13, 16, 19]
上面程式中第 3 行程式碼使用 list() 將一個元組轉換成列表;第 9 行程式碼用 list() 將一個區間(range)物件轉換為列表,該行程式碼轉換的區間為 range(1,5),該區間使用預設步長 1,該區間共包括 1、2、3、4 四個值(注意不包括 5)。因此程式輸出 b_list 時將看到如下結果:

[1, 2, 3, 4]

第 12 行程式碼將 range(4, 20, 3) 轉換為列表,該區間是從 4 到 20(不包括 20)且步長為 3 的數值,因此程式輸出 c_list 時將看到如下結果:

[4, 7, 10, 13, 16, 19]

Python 2.x 提供了一個 xrange() 函數,該函數與 Python 3.x 中的 range() 函數基本相同。Python 2.x 也提供了range() 函數,但是該函數返回的是列表物件。

tuple() 函數

與 list() 對應的是,Python 也提供了一個 tuple() 函數,該函數可用於將列表、區間(range)等物件轉換為元組。

例如如下程式碼:
a_list = ['crazyit', 20, -1.2]
# 將列表轉換成元組
a_tuple = tuple(a_list)
print(a_tuple)
# 使用range()函數建立區間(range)物件
a_range = range(1, 5)
print(a_range) # range(1, 5)
# 將區間轉換成元組
b_tuple = tuple(a_range)
print(b_tuple) #[1, 2, 3, 4]
# 建立區間時還指定步長
c_tuple = tuple(range(4, 20, 3))
print(c_tuple) # [4, 7, 10, 13, 16, 19]
上面程式碼中的第 3、9、12 行程式碼正是使用 tuple() 函數建立元組的關鍵程式碼。