python中資料結構,主要有列表、元組、字典、集合。
python中最基本資料結構是序列(sequence)。序列中每個元素被分配乙個序號——即元素位置,也成為索引。第乙個索引是0,第二個是1,以此類推。
python包含6種內建序列,其他內建序列型別有字串、unicode字串、buffer物件和range物件。
python之中還有一種名為容器(container)的資料結構。容器基本上是包含其他物件的任意物件。序列(例如列表和元組)和對映(例如字典)是兩類主要的容器。序列中每個元素都有自己編號,而對映中每個元素則有乙個名字(也稱為鍵)。至於既不是序列也不是對映的容器型別,集合(set)就是乙個例子。
列表用表示,元組用(),字典用,set
列表和元組屬於序列,其中列表是可變序列,可以直接對其進行賦值操作,元組是不可變序列。
所有序列型別都可以進行某些特定法操作。這些操作包括:索引(indexing)、分片(sliceing)、加(adding)、乘(multiplying)以及檢查某個元素是否屬於序列的成員(成員資格)。
list方法可以適用於型別的序列,而不只是字串
列表方法:
當需要乙個排好序的列表副本,同時又保留原有列表不變時,使用如下做法是錯誤的:x = ['a','b','c','d']
y = x.sort()
print y
返回的是none
因為sort方法修改了x卻返回了空值,那麼最後得到的是以排序的x以及值為none的y。實現這個功能的正確做法是,首先把副本賦值給y,然後對y進行排序:
y = x[:]
y.sort()
再次呼叫x[:]得到包含了x所有元素的分片,這是一種很有效率複製整個列表的方法,只是簡單的把x賦值給y是沒用的,因為這樣做就是讓x和y都指向同乙個列表。
另外一種獲取以排序的列表副本方法是,使用sorted函式:
這個函式實際上可以用於任何乙個序列,卻總是返回乙個列表。
元組:不可變序列
除了建立元組和訪問元組元素之外,也沒有太多其他操作,元組的分片還是元組,就像列表的分片還是列表一樣。
字串:格式化
s%稱為轉換說明符(conversion specifier),它們標記了需要插入轉化值的位置。s表示值會被格式化為字串,如果不是字串,則會用str將其轉換為字串
字串格式化轉換型別(具體參見轉換表)
字元方法:從string模組中繼承了很多方法
find 可以在乙個較長字串中查詢子字串,它返回子串所在位置的最左端索引,如果沒有找到則返回乙個-1
join s是split方法的逆方法,用來在隊伍中新增元素,需要新增的隊伍元素都必須是字串
seq = ['1','2'] sep = '+' sep.join(seq)或者'/'.join(seq)
replace 返回某字串的所有匹配項均為替換之後得到的字串
'hello c++'.replace('c++','python')
split 它是join 的逆方法,用來將字串分割成序列
'a+b+c+d'.split('+') ['a','b','c','d']
字典:並沒有特殊順序,但是都儲存在乙個特定鍵(key),key可以是數字、字串甚至是元組
字典的基本行為在很多方面與序列類似:
len(d)返回d中項(鍵-值對)的數量
d[k]返回關聯到鍵k上的值
d[k]=v將值v關聯到鍵k上
del d[k]刪除鍵為k的項
儘管字典和列表由很多特性相同,但也有下面一些重要的區別
鍵型別:字典的鍵不一定為整型資料(但也可能是),也可能是其他不可變型別,比如浮點型(實型)、字串或者元組
自動新增:即使那個鍵起初在字典中並不存在,也可以為它分配乙個值,這樣字典就會建立新的項。
成員資格:表示式k in d 查詢的是鍵,而不是值。
字典方法:
clear 清除字典中所有的項,這是個原地操作,所以無返回值,或者說返回為none
copy 返回乙個具有相同鍵值的對得新字典(這個方法是淺複製,使用deepcopys實現深複製)
items和iteritems items方法將所有的字典項以列表的方式返回,這些列表項中的每一項都來自於(鍵,值)。但是項在返回時並沒有特殊的順序。
keys和iterkeys 將字典中的鍵以列表形式返回,而iterkeys則返回針對鍵迭代器。
pop 方法用來獲得對應於給定鍵的值,然後將這個鍵值對從字典中移除
popitem 類似於list.pop,後者會彈出最後乙個元素,但不同的是,popitem會彈出隨機的項,因為字典沒有『最後乙個元素』的概念
values 以列表的形式返回字典中的值,與返回鍵的列表不同的是,返回值得列表中可以包含重複的元素。
+tags:《python基礎教程》第二版
Python學習筆記 0基礎(集合)
本人是一名在校大學生,分享自己的python學習筆記,共同進步。筆記內容 由自己組織語言編寫,為更好的理解。以書學習的同學,以書為標準。一.集合 集合的底層其實就是字典的 鍵物件。它不能重複,無序可變。1.可以建立乙個集合。使用add 可以新增元素。2.使用 set 可將列表 和 元組等可迭代的物件...
python 0基礎入門課筆記
參加了一次入門的體驗課,對我來說內容是比較淺的,但是課程設計得確實用心,值得為此付費 程式語言是為和機器溝通,所以,先要讓機器能與你對話,python裡讓機器說話的語句是 print 從名字不難理解,機器說話其實就是把內容列印到螢幕上的過程,至於說啥呢,就是括號裡的內容 那如何表達說的內容呢?高考給...
python的基礎運算 Python基礎04 運算
python的運算子和其他語言類似 我們暫時只了解這些運算子的基本用法,方便我們展開後面的內容,高階應用暫時不介紹 數 算 print 1 9 加法 print 1.3 4 減法 print 3 5 乘法 print 4.5 1.5 除法 print 3 2 乘方 print 10 3 求餘數 判斷...