元組不可以被改變,但是可以給元組名賦值,讓它指向新的元組
>>
>x=(1
,2,3
)>>
> x(1
,2,3
)>>
> x=(4
,5,6
)>>
> x(4
,5,6
)>>
> x[0]
=4traceback (most recent call last)
: file ""
, line 1,in
typeerror:
'tuple'
object does not support item assignment
可以刪除整個元組
>>
> x=(1
,2,3
)>>
> x(1
,2,3
)>>
>
del x
>>
> x
traceback (most recent call last)
: file ""
, line 1,in
nameerror: name 'x'
isnot defined
元組支援切片操作,但是不支援原地操作,即切片不能出現在賦值號的左邊
>>
> x=(1
,2,3
)>>
> y=x[0:
2]>>
> y(1
,2)>>
> x[0:
2]=(
4,5)
traceback (most recent call last)
: file ""
, line 1,in
typeerror:
'tuple'
object does not support item assignment
4.列表和元組的不同點:
(1)列表能進行修改,因此可以使得資料更安全。
python對元組的內部做了大量的優化,所以元組的訪問速度要比列表快。
基於以上兩點原因,我們在不需要改變資料的情況下,僅僅是做一些遍歷等操作時,我們一般選擇元組而不是列表。
(2)元組可以作為字典的鍵值、集合的元組,但是列表不可以,因為python要求字典的鍵值和集合的元素始終可雜湊
>>
> x=(1
,2,3
)>>
> y=
#元組作為集合的元素
>>
> y
>>
> z=
#元組作為字典的鍵值
>>
> z
>>
>x=[1
,2,3
]>>
> y=
#列表作為集合的元素
traceback (most recent call last)
: file ""
, line 1,in
typeerror: unhashable type
:'list'
>>
> z=
#列表作為字典的鍵值
traceback (most recent call last)
: file ""
, line 1,in
typeerror: unhashable type
:'list'
生成器推導式
(1)生成器推導式的返回值是乙個生成器物件
>>
> x=
(i for i in
range(10
))>>
> x
at 0x000002c2c6b43ec8
>
(2)這與列表推導式有很大不同,列表推導式的結果是列表
>>
> x =
[i for i in
range(10
)]>>
> x[0
,1,2
,3,4
,5,6
,7,8
,9]
(3)使用生成器物件的元素時,可以將生成器物件轉換成列表或元組
>>
> x =
(i for i in
range(10
))>>
> y =
tuple
(x)>>
> y(0
,1,2
,3,4
,5,6
,7,8
,9)>>
> z =
tuple
(x)>>
> z()
>>
> w =
list
(x)>>
> w
**中z元組是個空元組,w是個空列表,這是因為之前得到y元組的過程中已經對生成器物件x進行了遍歷的訪問,訪問乙個刪除乙個,所以後面想再使用x時,x已經空了
(4)還可以使用生成器物件的_ next () _ 方法或者python內建函式next()來對生成器物件進行遍歷(下面將x轉換成的列表說明了生成器物件訪問過的元素會被刪除)
>>
> x =
(i for i in
range(10
))>>
> x.__next__()0
>>
> x.__next__()1
>>
> x.__next__()2
>>
>
next
(x)3
>>
>
next
(x)4
>>
>
list
(x)[5,
6,7,
8,9]
(5)使用for迴圈遍歷生成器物件中的元素
>>
> x =
(i for i in
range(10
))>>
>
for item in x:..
.print
(item,end=
' ')..
.012
3456
789
(6)乙個有趣的例子
>>
> x =
map(
str,
range(20
))>>
>
'2'in x
true
>>
>
'2'in x #此時x有 '3','4','5','6',...,'19' 所以此表示式結果為false
false
>>
>
'8'in x #此時x為空(為了在 '3'到 '19'中尋找'2',把整個生成器物件全部遍歷,所以此時生成器是空的)
false
「訪問過的元素就刪除」 這樣的特點也存在於enumerate、filter、map、zip等迭代器物件中 python 列表 元組的基本用法總結
python列表定義 a 0,1,2,3,4,5,6 b a 0 2 代表從第0個下標開始取到第2個下標數返回給b c a 代表轉殖所有資料給c,這裡應該是值變數,不是引用位址 d a 4 0 1 這個4代表從第4個下標開始,取值到第0個下標中間的數字,並且步長是 1,就是倒序取值,這裡d的值應該是...
python元組的用法
1.什麼是元組 同list一樣,允許存放若干任意型別資料的容器 但是元組是不可變的序列 2.語法 元組是使用 括起來,內允許盛放若干元素,如果只放乙個元素的話,元素後要加 用於區分物件還是元組 1.使用字面值建立元組 1.建立空元組 t 2.建立非空元組 t 100,200,300 t 100,20...
C tuple元組的基本用法 總結
1,元組簡介 tuple是乙個固定大小的不同型別值的集合,是泛化的std pair。我們也可以把他當做乙個通用的結構體來用,不需要建立結構體又獲取結構體的特徵,在某些情況下可以取代結構體使程式更簡潔,直觀。std tuple理論上可以有無數個任意型別的成員變數,而std pair只能是2個成員,因此...