Tuple
元組(tuple)與列表類似,不同之處在於元組的元素不能修改。元組寫在小括號 () 裡,元素之間用逗號隔開。
元組中的元素型別也可以不相同:
>>> t = (1,2,3,['a'],{'name':'phyger'})>>> t(1, 2, 3, ['a'], {'name': 'phyger'})>>> t[1:](2, 3, ['a'], {'name': 'phyger'})>>> t[:-2](1, 2, 3)>>> t*2(1, 2, 3, ['a'], {'name': 'phyger'}, 1, 2, 3, ['a'], {'name': 'phyger'})>>> t[0]1>>> t[0]=2Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment>>>
雖然tuple的元素不可改變,但它可以包含可變的物件,比如list列表。
構造包含 0 個或 1 個元素的元組比較特殊,所以有一些額外的語法規則:
>>> p = (1)>>> p1>>> type(p)<class 'int'>>>> q = (1,)>>> type(q)<class 'tuple'>>>> q(1,)>>>
注意:元組中的元組不可變,但是可以包含可變型別的元素,單個元素的元組有特殊的地方,記得加逗號“,”
Set集合(set)是由一個或數個形態各異的大小整體組成的,構成集合的事物或物件稱作元素或是成員。
可以使用大括號 { } 或者 set() 函式建立集合,注意:建立一個空集合必須用 set() 而不是 { },因為 { } 是用來建立一個空字典。
建立格式:
>>> st = {'xian','beijing','chengdu'}>>> type(st)<class 'set'> >>> tt = set('xian')>>> tt{'x', 'i', 'a', 'n'}>>> type(tt)<class 'set'> >>> bb = set('abcdaaa')>>> bb{'c', 'd', 'a', 'b'}>>>
集合運算:
>>> s1 = {1,2,3,4}>>> s2 = {3,4,5,6}>>> s1-s2 #差集{1, 2}>>> s1|s2 #或{1, 2, 3, 4, 5, 6}>>> s1&s2 #與{3, 4}>>> s1^s2 #與非{1, 2, 5, 6}>>>
Dictionary
字典(dictionary)是Python中另一個非常有用的內建資料型別。
列表是有序的物件集合,字典是無序的物件集合。兩者之間的區別在於:字典當中的元素是透過鍵來存取的,而不是透過偏移存取。
字典是一種對映型別,字典用 { } 標識,它是一個無序的 鍵(key) : 值(value) 的集合。
鍵(key)必須使用不可變型別。
在同一個字典中,鍵(key)必須是唯一的。
>>> d = {'name':'phyger'}>>> d{'name': 'phyger'}>>> type(d)<class 'dict'>>>> d['age']=18>>> d{'name': 'phyger', 'age': 18}>>> d.keys()dict_keys(['name', 'age'])>>> d.values()dict_values(['phyger', 18])>>> d['age']=19>>> d{'name': 'phyger', 'age': 19}>>> d.clear()>>> d{}>>>
資料型別轉換number2string
string = str(number) >>> res = str(2)>>> print(res.type(res))2 <class 'str'>
string2number
number= int(string) >>> res = int('2')>>> print(res,type(res))2 <class 'int'>
tuple2list
>>> y = (1,2,3)>>> print(type(y))<class 'tuple'>>>> li = list(y)>>> print(li,type(li))[1, 2, 3] <class 'list'>
list2tuple