內(nèi)置數(shù)據(jù)結(jié)構(gòu)
Python有4種內(nèi)置數(shù)據(jù)結(jié)構(gòu):列表吏垮,字典,元組九秀,集合鼓蜒。
不同的數(shù)據(jù)類型之間可以進行類型轉(zhuǎn)換以達到特殊目的,比如將list
先轉(zhuǎn)成set
畅厢,以達到去重的目的,之后再轉(zhuǎn)回list
郭计。
列表(List)
列表的特征
- 列表中的每一個元素都是可變的昭伸;
- 列表其實是一個棧庐杨;
- 列表中的元素是有序的灵份,也就是說每一個元素都有一個位置;
- 列表可以容納Python中的任何對象氛什。
Python列表 vs C數(shù)組
Python列表 可以存儲任何數(shù)據(jù)類型
list = [11, 22, 3.14, "100", "laowang"]
C語言數(shù)組 只能存儲相同的數(shù)據(jù)類型
int nums[] = {1, 2, 3, 4}
列表的操作——增刪改查
插入
append( )
append( )
:只能插入最后枪眉。
insert( )
insert( )
:可以指定插入位置堡纬。
list.insert(指定位置, '插入對象') # 如果指定位置不存在隐轩,則在列表的最后插入
例子
fruit = ['pineapple', 'pear']
fruit.insert(1, 'grape') # 第1個元素之前插入,即插入第0個位置
print(fruit)
fruit = ['pineapple', 'pear']
fruit.insert(5, 'grape') # 若指定位置不存在悴灵,則在最后插入
print(fruit)
extend( )
extend( )
:可以插入一個列表。
刪除
pop( )
pop( )
:刪除最后一個。
remove( )
remove( )
:指定刪除內(nèi)容缰贝。
list.remove('要刪除的對象')
例子
fruit = ['pineapple', 'pear', 'grape']
fruit.remove('grape')
print(fruit)
del
del
:根據(jù)下標刪除。
del list[a:b]
例子
fruit = ['pineapple', 'pear', 'grape']
del fruit[0:2]
print(fruit)
修改
fruit = ['pineapple', 'pear', 'grape']
fruit[0] = 'banana'
print(fruit)
查找
列表的查找和字符串的切片類似趣兄,只要輸入元素的相應位置就能返回該位置上的值妇菱。列表只接受根據(jù)位置查找對應的值闯团,而不允許通過值返回對應位置。
判斷元素是否在列表中
in
& not in
列表常用方法
index( )
和字符串使用方法一樣候味。
count( )
和字符串使用方法一樣。
sort( )
reverse( )
sorted( )
字典(Dictionary)
字典:類似于現(xiàn)實中的字典笼裳,采用名稱-內(nèi)容相對應的形式進行存儲,在Python中對應為key-value粱玲。
字典的特征
- 字典中的數(shù)據(jù)必須是以鍵值對的形式出現(xiàn)的躬柬;
- 邏輯上講,鍵是不能重復的抽减,而值是可以重復的允青;
- 字典中的鍵(key)是不可變的,也就是無法修改的卵沉;而值(value)是可變的颠锉,也就是可以修改的史汗,可以是任何對象恶复。
字典的操作——增刪改查
插入
插入單個元素
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina'}
NASDAQ_code['YOKU'] = 'youku'
print(NASDAQ_code)
插入多個元素
update( )
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina'}
NASDAQ_code.update({'FB':'facebook', 'TSLA':'tesla'}) # 將要插入的多個對象封裝成一個字典
print(NASDAQ_code)
刪除
del
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina', 'FB':'facebook', 'TSLA':'Tesla'}
del NASDAQ_code['BIDU'] # 通過key來指向整個鍵值對
print(NASDAQ_code)
修改
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina', 'FB':'facebook', 'TSLA':'Tesla'}
NASDAQ_code['TSLA'] = 'TESLA' # 通過key來修改value
print(NASDAQ_code)
查找
直接查找
NASDAQ_code = {'BIDU':'baidu', 'SINA':'sina', 'FB':'facebook', 'TSLA':'Tesla'}
print(NASDAQ_code['TSLA']) # 通過key來索引value
注意:查找不到元素時會拋出異常。
get( )
注意:采用get( )
方法時,查找不到不會進行任何輸出。
元組(Tuple)
- 可以理解為穩(wěn)定版(只讀)的列表囊陡,只能進行查找,不能進行其他操作,查找方式同列表。
- 內(nèi)置函數(shù)
count( )
和index( )
與列表的用法相同。
(1,) # 只有一個變量的元組的輸出形式,注意會有一個逗號
集合(Set)
集合的特征
類似于數(shù)學上集合的概念,集合中的元素是無序的,不重復的。
集合的操作
集合不能進行切片和索引善已,只能進行插入和刪除艘包。
a_set = {1, 2, 3, 4}
a_set.add(5) # 插入元素
a_set.discard(1) # 刪除元素
print(a_set)