歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Python 的3大內置數據結構

Python 的3大內置數據結構

日期:2017/3/1 10:27:51   编辑:Linux編程

1 列表

list 是python中最具靈活性的對象類型,它支持在原處修改,可以指定偏移值和分片,列表方法調用,刪除語句等方法實現,它有點像數組,支持偏移讀取,也支持分片讀取。和數組不一樣的是,列表長度是可變的,並且可以包含任意類型的對象,而不是要求統一的數據類型。

列表的一些常用操作

操作 解釋
L1=[] 一個空的列表
L2 = [0, 1, 2, 3] 四元素列表
L3 = [‘abc’,10,[‘def’, ‘ghi’] 嵌套列表
L2[i] 索引
L3[i][j] 索引的索引
L2[i:j] 分片
len(L2) 求長度
L1 + L2 合並

L2 * 3 重復

列表常用方法

append(x)把一個元素添加到列表的末尾

extended(L)通過添加指定列表的所有元素來擴充列表,相當於a[len(a):]=L

insert(i,x)在指定位置插入一個元素

remove(x)刪除列表中值為x的元素

pop([i])從列表指定的位置刪除一個元素並返回,如果沒有指定索引,那麼久從末尾彈出一個元素

index(x)返回列表中第一個值為x的元素的索引

count(x)返回列表中元素x的個數

sort()對列表按自然序排序

reverse()倒序


可以通過函數組合把列表當做隊列和堆棧用

append

pop


隊列

del

append



元組

一個元組由數個逗號隔開的對象組成

t=(1,2,3)

元組在輸出時總是有括號的,以便於正確表達嵌套結構。
在輸入時,有或沒有括號都可以,不過經常括號都是必須的(如果元組是一個更大的表達式的一部分)。

元組有點像字符串,不可改變元素的值,也不可通過索引給一個字符賦值,但是可以通過連接或切片來模仿一些操作


元組的封裝和解封

語句t = 12345, 54321, ’hello!’ 是元組封裝(sequence packing)的一個例子:值12345,54321 和’hello!’ 被封裝進元組。其逆操作可能是這樣:

這個調用被稱為序列拆封非常合適。序列拆封要求左側的變量數目與序列的元素個數相同

>>> t = [1, 2, 3]
>>> x, y, z = t
>>> print x, y, z
1 2 3

>>> s = "123"
>>> x,y,z = s
>>> print x, y, z
1 2 3


字典

字典類似於通過聯系人名字查找地址和聯系人詳細情況的地址簿,即:我們把鍵(名字)和值(詳細情況)聯系在一起。注意,鍵必須是唯一的,就像如果有兩個人恰巧同名的話,將無法找到正確的信息

字典的keys()方法返回由所有關鍵字組成的列表,該列表的順序不定(如果需要它有序,只能調用返回列表的sort()方法)
使用字典的has_key()方法可以檢查字典中是否存在某一關鍵字
字典的values()方法返回字典內所有的值
字典的get()方法可以根據關鍵字返回值,如果不存在輸入的關鍵字,返回None

字典的update(anothordict)方法類似於合並,它把一個字典的關鍵字和值合並到另一個,盲目的覆蓋相同鍵的值

字典的pop()方法能夠從字典中刪除一個關鍵字並返回它的值,類似於列表的pop方法,只不過刪除的是一個關鍵字而不是位置

dict={'zhanghong':1988316,'zhanghong':2008,'liyanhong':1978316,'huangguanyue':1989316}
print(dict.has_key('zhanghong'))#返回是否含有某個鍵值
for value in dict.keys():#返回所有關鍵字組成的列表
print(value)

for value in dict.values():#返回所有關鍵字對應的值組成的列表
print(value)

print(dict.get('zhanghong'))#後面的值覆蓋了前面的值

dict1={'1':1,'2:':2,'3':3}
dict2={'3':3,'4:':4}
dict1.update(dict2)#它把一個字典的關鍵字和值合並到另一個,盲目的覆蓋相同鍵的值

for value in dict1.values():
print(value)
"""
如果有一個鍵值對應多個值,你想取得前面的值,那麼可以進行一個判斷,然後取出相應值
但是在一個字典中不可能有重復的鍵值
比如要取得鍵為'zhanghong'-->1988316
"""
Copyright © Linux教程網 All Rights Reserved