可以儲存不同型別的資料,包括list本身。
注意:可以從頭到尾也可以從尾到頭訪問元素。
>>> tp = (1,2,['a','b'])
>>> tp[2][0] = 'x'
>>> tp[2][1] = 'y'
tuple還有乙個有意思的地方:定義單個元素的tuple時需要注意:
>>> tp = (1)
>>> tp
1>>> tp = (1,)
>>> tp
(1,)
第一種方式是不對的(系統會認為是乙個數1),需要在元素後面再加乙個逗號才是tuple型別的資料。
key必須是相異的不可變物件,可以是字元/數字,但是不能為list。
>>> d =
>>> d['a']
10
和list比較,dict有以下幾個特點:
查詢和插入的速度極快,不會隨著key的增加而增加;
需要占用大量的記憶體,記憶體浪費多。
而list相反:
查詢和插入的時間隨著元素的增加而增加;
占用空間小,浪費記憶體很少。
所以,dict是用空間來換取時間的一種方法。
和dict一樣是無序key,因此key也必須是不同的不可變型別的值。
>>> s1 = set([1,2,3])
>>> s1
注意:
- set的輸入是乙個list,但是並不意味值key值為list型別,可以通過add()操作增加乙個元素,也可以通過update()來增加多個元素,對於已經存在的元素不再新增,因此set可以用來去除重複元素(hash)。
對於不變物件來說,呼叫物件自身的任意方法,也不會改變該物件自身的內容。相反,這些方法會建立新的物件並返回,這樣,就保證了不可變物件本身永遠是不可變的。
>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']
>>> a = 'abc'
>>> a.replace('a', 'a')
'abc'
>>> a
'abc'
雖然tuple也是不可變物件,但是如果tuple中如果含有list元素,是不能作為dict/set的key的。
>>> dict =
>>> dict
>>> dict =
traceback (most recent call last):
file "/usr/lib/x86_64-linux-gnu/gedit/plugins/pythonconsole/console.py", line
377, in __run
r = eval(command, self.namespace, self.namespace)
file "", line
1 dict =
^syntaxerror: invalid syntax
during handling of
the above exception, another exception occurred:
traceback (most recent call last):
file "/usr/lib/x86_64-linux-gnu/gedit/plugins/pythonconsole/console.py", line
381, in __run
exec(command, self.namespace)
file "", line
1, in
typeerror: unhashable type: 'list'
從錯誤資訊可知,tuple中含有list元素時是可變物件,不可作為key。
以上。
python基本資料型別
物件是python中最基本的概念,python中資料以物件的形式出現 無論是python提供的內建物件,還是使用python或是像c擴充套件庫這樣的擴充套件語言工具建立的物件。物件時記憶體中的一部分,包括數值和相關操作的集合。python程式可以分解成模組 語句 表示式以及物件,如下 1 程式由模組...
Python基本資料型別
1 python中一切都是物件。2 每乙個資料都有乙個id標示,用id 可以檢視。也可以用type檢視是什麼型別。3 常用的資料型別 int 整型 數字 boole true 值 賦值,要用大寫 a true string 字串 也稱作序列。list 列表 tuple 元組 dict 字典 set ...
Python基本資料型別
python內建許多資料基本型別。資料型別dt 表示形式 int整形如 1,0,1,float 浮點型如 1.1,0.0,1.1,str字串如 單引號或雙引號括起來的形式 hello python list 列表如 1,2 巢狀列表 1,2,3 tuple 元組如 1,2 set無序列表如 comp...