python筆記05元組 字典以及集合

2021-10-24 13:21:44 字數 4204 閱讀 1586

元組是一種不可變序列,一旦定義其內部值就無法改變。

>>> tu1 = (1,2,'3',7.6)
>>> tu1

(1, 2, '3', 7.6)

元組的索引,切片操作和字串類似

>>> tu1[2]

'3'

>>> tu1[::-2]

(7.6, 2)

>>> tu1[1:3]

(2, '3')

一樣的左閉右開不要忘了奧

元組還可以,加,乘,count(),index(),len(),min(),max()

>>> tu1=(1,2,3,4,5,6)

>>> tu1

(1, 2, 3, 4, 5, 6)

>>> tu2 = tu1 + (2,4,1,3)

>>> tu2

(1, 2, 3, 4, 5, 6, 2, 4, 1, 3)

>>> tu3 = tu2*3

>>> tu3

(1, 2, 3, 4, 5, 6, 2, 4, 1, 3, 1, 2, 3, 4, 5, 6, 2, 4, 1, 3, 1, 2, 3, 4, 5, 6, 2, 4, 1, 3)

>>> tu3.count(6)

3>>> tu3.index(3)

2>>> len(tu3)

30>>> min(tu3)

1>>> max(tu3)

6

tuple不可以新增或者修改其內部值,從上面的**中就可以看到想要向元組中新增元素就要用定義新的元組。

>>> tu1[3] = '12'

traceback (most recent call last):

file "", line 1, in typeerror: 'tuple' object does not support item assignment

已經定義的元組是無法改變的,更詳細的說是元組的內部第一層值無法改變。既然這樣說第二層是什麼意思,怎麼又可以變了哪?

別急我們來看**

>>> tu1

(1, 2, 3, 4, 5, 6)

>>> tu2 = tu1 + (1,[2,4,6])

>>> tu2

(1, 2, 3, 4, 5, 6, 1, [2, 4, 6])

>>> tu2[-1][-1] = 'abc'

>>> tu2

(1, 2, 3, 4, 5, 6, 1, [2, 4, 'abc'])

也就是說,元組內部的元素可以是可變的型別。

還有元組雖然不可以用sort排序和reverse反轉,但是想要實現這樣的功能使用內建函式就可以做到。

>>> sorted(tu1)

[1, 2, 3, 5, 6, 8, 12]

>>> list(reversed(tu1))

[8, 12, 6, 3, 5, 2, 1]

這裡也體現了元組的不可變性,使用類內建函式後它的輸出值是列表,而不是原先的元組。

當然列表和元組之間是可以相互轉化的

>>> tu2 = (1,3,4,2,5)

>>> print(list(tu2))

[1, 3, 4, 2, 5]

>>> print(tuple(list(tu2)))

(1, 3, 4, 2, 5)

字典資料型別是基於雜湊演算法實現的,採用鍵值對(key:value)的形式,根據key的值計 算value的位址,具有非常快的查取和插入速度。

>>> dic1 = 

>>> dic1[1]

'one'

>>> dic1[2]

'two'

>>> dic1[4]

traceback (most recent call last):

file "", line 1, in keyerror: 4

>>> dic2 =

>>> dic2['one']

1

可以看到如果訪問了錯誤的key值會報錯,

所以建議使用.get()即使使用了錯誤的key值,只會返回default值(預設是none,不過可以修改)。

>>> print(dic1.get('one'))

none

>>> print(dic1.get('one','沒有找到'))

沒有找到

建立字典的幾種方法

>>> dic1 = dict(one=1,two=2,three=3)

>>> dic2 =

>>> dic3 = dict(zip(['one','two','three'],[1,2,3]))

>>> dic1 == dic2 == dic3

true

個人感覺第三個挺關鍵的,能把兩個列表變成字典,應該很有實用性

字典中key值是不可變也必須是不可變物件,value值是可以變的,也可以是可變物件

>>> dic1['one']=43

>>> dic1

>>> dic1['one']=[1,2,3]

>>> dic1

clear()可以用來清空乙個字典,注意是清空不是刪除

>>> dic1.clear()

>>> dic1

{}

字典使用pop()要有key引數

>>> dic1.pop('one')

[1, 2, 3]

>>> dic1

字典還有三個比較常有的函式

>>> dic1.keys()

dict_keys(['two', 'three'])

>>> dic1.values()

dict_values([2, 3])

>>> dic1.items()

dict_items([('two', 2), ('three', 3)])

集合是乙個無序不重複元素的集,因為它的不重複性,它可以用來去重。

>>> set1 = 

>>> set1

因為集合是無序的所以像是索引和切片都不能用

>>> set1[0]

traceback (most recent call last):

file "", line 1, in typeerror: 'set' object does not support indexing

集合的初始化

>>> set1 = 

>>> lis1 = [1,2,4,5,234,3,2]

>>> set2 = set(lis1)

>>> set2

集合內元素的新增以及刪除

>>> set1.add(1)

>>> set1.add(90)

>>> set1

>>> set1.add([12,2])

traceback (most recent call last):

file "", line 1, in typeerror: unhashable type: 'list'

新增元素有兩點要是注意

接下來看刪除操作

>>> set1

>>> set1.remove(1)

>>> set1

>>> set1.pop()

0>>> set1.pop()

2>>> set1

remove可以設定刪除指定的值,而pop是隨機彈出的要注意。

最後再講一下好用的update

>>> set1.update('wow')

>>> set1

可以直接插入字串。

筆記先記到這裡,後續還會更新,

如果有寫錯的地方,文不達意的地方,請多多指教,謝謝啦

加油!

Python基礎 05 元組

元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。如下例項 tup1 google runoob 1997,2000 tup2 1,2,3,4,5 tup3 a b c d 建立空元組 tup1 元組中只包含乙個元素時,需要在元素後面新增逗號,否則括號會被當作運算子使用 tup1 50 t...

Python學習筆記 7 元組 字典 集合

1.元組簡介 2.字典簡介 3.遍歷字典 4.集合 元組基本介紹 字典的作用和列表類似,都是用來儲存物件的容器 列表儲存資料的效能好,但是查詢資料的效能差,字典正好與之相反 在字典中每乙個元素都有唯一的名字,通過這個唯一的名字可以找到指定的元素 這個唯一的名字我們稱之為key 通過過key可以快速查...

Python基礎五(元組 字典)

字典簡介 tuple1 1 2,3 tuple1 1,tuple1 1 2,3 4 a,b,c tuple1 print a,b,c 輸出結果為 1 2,3 4字典的作用和列表類似,都是用來儲存物件的容器 列表儲存資料的效能好,但是查詢資料的效能差,字典正好與之相反 在字典中每乙個元素都有唯一的名字...