Python復合數(shù)據(jù)類型
? 數(shù)值類型、布爾類型數(shù)據(jù)不可再分解為其他類型, 而列表、元組、字典和集合類型的數(shù)據(jù)包含多個 相互關(guān)聯(lián)的數(shù)據(jù)元素,所以稱它們?yōu)閺秃蠑?shù)據(jù)類 型。?
? 字符串其實也是一種復合數(shù)據(jù),其元素是單個字 符。
? 列表、元組和字符串是有順序的數(shù)據(jù)元素的集合 體,稱為序列(sequence)。?
? 序列具有順序存取的特征,可以通過各數(shù)據(jù)元素 在序列中的位置編號(索引)來訪問數(shù)據(jù)元素。?
? 字典和集合屬于無順序的數(shù)據(jù)集合體,數(shù)據(jù)元素 沒有特定的排列順序,因此不能像序列那樣通過 位置編號來訪問數(shù)據(jù)元素。
1.列表?
? 列表(list)是Python 中使用較多的復合數(shù)據(jù)類型, 可以完成大多數(shù)復合數(shù)據(jù)結(jié)構(gòu)的操作。 ? 列表是寫在中括號之間、用逗號分隔的元素序列, 元素的類型可以不相同,可以是數(shù)字、單個字符、 字符串甚至可以包含列表(所謂嵌套)。
? 例:?
? >>> m=['brenden',45.3,911,'john',32] ? >>> print(m) #輸出完整列表?
? ['brenden', 45.3, 911, 'john', 32]?
? >>> print(m[0]) #輸出列表的第1 個元素?
? brenden
? 與Python 字符串不同的是,列表中的元素是可以改變的。?
? 例:?
? >>> a=[1,2,3,4,5,6]?
? >>> a[0]=9?
? >>> a?
? [9, 2, 3, 4, 5, 6]
2.元組?
? 元組(tuple)是寫在小括號之間、用逗號隔開的元素序列。?
? 元組中的元素類型也可以不相同。?
? 元組與列表類似,不同之處在于元組的元素不能修改,相當于只讀列表。
? 例:?
? >>> m=('brenden',45.3,911,'john',32)?
? >>> print(m) #輸出完整元組?
? ('brenden', 45.3, 911, 'john', 32)?
? >>> print(m[0]) #輸出元組的第1 個元素?
? brenden
? 注意:?
? 空的圓括號表示空元組。?
? 當元組只有一個元素時,必須以逗號結(jié)尾。
? 例:?
? >>> () #空元組?
? ()?
? >>> (9,) #含有一個元素的元組?
? (9,) ? >>> (9) #整數(shù)9?
? 9
? 任何一組以逗號分隔的對象,當省略標識序列的括號時,默認為元組。?
? 例:?
? >>> 2,3,4?
? (2, 3, 4)?
? >>> s=2,3,4?
?>>> s?
? (2, 3, 4)
? 元組與字符串類似,元素不能二次賦值。?
? 可以把字符串看成一種特殊的元組。?
? 以下給元組賦值是無效的,因為元組是不允許更新的,而列表允許更新。?
? >>> tup=(1,2,3,4,5,6)?
? >>> list=[1,2,3,4,5,6]?
? >>> tup[2]=1000 #在元組中是非法應用?
? >>> list[2]=1000 #在列表中是合法應用
? 元組和列表的區(qū)別:?
? 列表元素用中括號[]括起來,且元素的個數(shù)及元 素的值可以改變。?
? 元組元素用小括號()括起來,且不可以更改。?
? 元組可以看成只讀的列表。
3.字典?
? 字典(dictionary)是寫在大括號之間、用逗號分隔的元素集合,其元素由關(guān)鍵字(key,也稱為鍵) 和關(guān)鍵字對應的值(value)組成,通過關(guān)鍵字來 存取的字典中的元素。
? 列表和元組是有序的對象結(jié)合,字典是無序的對象集合。?
? 字典是一種映射類型(mapping type),它是一 個無序的“關(guān)鍵字:值”對集合。?
? 關(guān)鍵字必須使用不可變類型,也就是說列表和包 含可變類型的元組不能做索引關(guān)鍵字。
? 在同一個字典中,關(guān)鍵字還必須互不相同。
? 例:?
? >>> dict={'name':'brenden','code':410012,'dept':'sales'}
? ? >>> print(dict) #輸出完整的字典?
? {'name': 'brenden', 'dept': 'sales', 'code': 410012}?
? >>> print(dict['code']) #輸出關(guān)鍵字為“code”的值?
? 410012?
? >>> dict['payment']=4500 #在字典中添加一個“關(guān)鍵字:值”對?
? >>> print(dict) #輸出完整的字典?
? {'name': 'brenden', 'dept': 'sales', 'code': 410012, 'payment': ?4500}
4.集合?
? 集合(set)是一個無序且包含不重復元素的數(shù)據(jù) 類型。?
? 基本功能是進行成員關(guān)系測試和消除重復元素。?
? 可以使用大括號或者set()函數(shù)創(chuàng)建集合類型。?
? 注意:創(chuàng)建一個空集合必須用set()而不是{},因為 {}是用來創(chuàng)建一個空字典。
? 例:?
? >>> student={'Tom','Jim','Mary','Tom','Jack','Rose'}?
? >>> print(student) #重復的元素被自動去掉?
? {'Jim', 'Tom', 'Jack', 'Rose', 'Mary'}?
? >>> s={}?
? >>> type(s)?
? <class 'dict'>?
? >>> s=set()?
? >>> type(s)?
? <class 'set'>