介紹
列表屬于可變序列,可以任意修改列表中的元素。
元組屬于不可變序列,不能修改元組中的元素。
元組特點: 有序, 不可變,
小括號 ( )
操作
元組沒有增加元素、修改元素、刪除元素相關的方法。
只需學元組的創建和刪除,元素的訪問和計數即可。
元組支持如下操作:
索引訪問
切片操作
連接操作
成員關系操作
比較運算操作
計數:元組長度len()、最大值max()、最小值min()、求和sum()等
元組的創建
tuple()可以接收列表、字符串、其他序列類型、迭代器等生成元組
list()可以接收元組、字符串、其他序列類型、迭代器等生成列表
元組tuple
列表屬于可變序列,可以任意修改列表中的元素
元組屬于不可變序列,不能修改元組中的元素.
因此,元組沒有增加元素、修改元素、刪除元素相關的方法
a = (1)
print(type(a))
一般創建方式
如果元組只有一個元素,則必須后面加逗號。這是因為解釋器會把(1)解釋為整數1,(1,)解釋為元組。
a = (1,)
b =
2,
print(type(a), type(b))
通過tuple()創建元組
a = tuple()
b =
tuple("abc")
c = tuple(range(3))
d = tuple([2, 3, 4])
print(a, b, c,
d)
元組的訪問和計數
元組的元素訪問和計數
1 元組的元素不能修改
a = [20, 10, 30, 9, 8]
元組的元素訪問、index()、count()、切片等操作,和列表一樣
print(a[1])
print(a[1:3])
print(a[:4])
print(a[2:])
print("元組的計數:",
len(a))
print("指定元素出現的個數:", a.count(8))
列表關于排序的方法list.sorted()是修改原列表對象,元組沒有該方法
如果要對元組排序,只能使用內置函數sorted(tupleObj),并生成新的列表對象
a = (20, 10, 30, 9, 8)
b =
sorted(a)
print(b) # [8, 9, 10, 20,
30]
zip(列表1,列表2,…)將多個列表對應位置的元素組合成為元組,并返回這個zip對象
zip(列表1,列表2,...)將多個列表對應位置的元素組合成為元組,并返回這個zip對象
如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同
a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8,
9]
d = zip(a, b, c)
print(d) #
0x000001F1E4FBE280>
e =
list(d)
print(e)
生成器推導式創建元組
生成器推導式創建元組
1.從形式上看,生成器推導式與列表推導式類似,只是生成器推導式使用小括號
2.列表推導式直接生成列表對象,生成器推導式生成的不是列表也不是元組,而是一個生成器對象
3.我們可以通過生成器對象,轉化成列表或者元組。也可以使用生成器對象的 next () 方法進行遍歷,或者直接作為迭代器對象來使用。
不管什么方式使用,元素訪問結束后,如果需要重新訪問其中的元素,必須重新創建該生成器對象
列表推導式: [0, 2, 4, 6, 8]
a =
[x * 2 for x in range(5)]
print(a)
列表推導式直接生成列表對象,生成器推導式生成的不是列表也不是元組,而是一個生成器對象
s = (x * 2 for x in
range(5))
print(s)
我們可以通過生成器對象,轉化成列表或者元組。也可以使用生成器對象的 next ()
方法進行遍歷,或者直接作為迭代器對象來使用
b = tuple(s)
print(b) # (0, 2, 4, 6, 8)
c =
tuple(s)
不管什么方式使用,元素訪問結束后,如果需要重新訪問其中的元素,必須重新創建該生成器對象
print(c) # ()
s2 = (x for x in range(3))
print(s2. next ()) #
0
print(s2. next ()) # 1
print(s2. next ()) # 2
print(s2. next ()) # 報錯:StopIteration
-
編程
+關注
關注
88文章
3595瀏覽量
93604 -
序列
+關注
關注
0文章
70瀏覽量
19547 -
python
+關注
關注
56文章
4782瀏覽量
84464
發布評論請先 登錄
相關推薦
評論