06_Python的數據類型3元組,集合和字典_Python編程之路

上一節跟大家講了Python的列表,當然不是完整的講完,後續我們還會提到,這一節我們還是來講Python的數據類型

首先要講到的就是元組

元組其實擁有列表的一些特性,可以存儲不同類型的值,但在某些方面元組又比不上列表

定義一個元組,你可以不用加‘ [ ] ’,你只需用逗號隔開即可

例如

In [1]: my_tuple = "susmote", 28, 123456789

In [2]: my_tuple[0]
Out[2]: 'susmote'

In [3]: my_tuple[1]
Out[3]: 28

In [4]: my_tuple
Out[4]: ('susmote', 28, 123456789)

  

元組也能被嵌套

In [5]: nested_t = my_tuple, (4, 3, 2, 1)

In [6]: nested_t
Out[6]: (('susmote', 28, 123456789), (4, 3, 2, 1))

In [7]: nested_t[0][0]
Out[7]: 'susmote'

  

在這裏,元組和列表最大的不同就是元組是不可變的,不能通過直接賦值改變元組中的值

In [8]: my_tuple = "susmote", 28, 123456789

In [9]: my_tuple[0] = "ayesup"
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-d99875c0ce61> in <module>()
----> 1 my_tuple[0] = "ayesup"

TypeError: 'tuple' object does not support item assignment

  下面報了一個類型錯誤

但是,在元組裏面可以包含列表,而列表有是可變的,所以說元組是包含可變對象

In [11]: my_tuple = ([1, 2, 3],[4, 5, 6])

In [12]: my_tuple[0][0]  = 7

In [13]: my_tuple
Out[13]: ([7, 2, 3], [4, 5, 6])

  在這裏,要注意,括號是可以不用加上的,但爲什麼規範起見,還是儘量要把括號加上

 

元組是可以爲空的,你只需要在賦值的時候加一個括號即可

In [16]: my_tuple = ()

In [17]: len(my_tuple)
Out[17]: 0

  

如果你想創建一個只有一個元素的元組,那麼你只需要在最後加上一個逗號就可以了

In [18]: my_tuple = "susmote",

In [19]: my_tuple
Out[19]: ('susmote',)

In [20]: len(my_tuple)
Out[20]: 1

  

元組是一個包含多個值的列表集合,所以我們可以直接獲取其中的值,並賦給一個變量

In [27]: my_tuple = "susmote",123456, 18

In [28]: my_tuple = "susmote", 18, 13488888888

In [29]: name, age, phone = my_tuple

In [30]: name
Out[30]: 'susmote'

In [31]: phone
Out[31]: 13488888888

  

接下來我們講一下集合

集合相信大家應該不陌生,初中的時候應該是學過的,當然你如果說你沒上個初中,那就另當別論了

由一個或多個確定的元素所構成的整體叫做集合。這是數學中的概念,在python中也可以這樣簡單的認爲

聲明一個要用到花括號" { } ",你要把值全部加到括號裏面

首先集合的一個重要概念就是無序

例如,我們聲明一個集合

In [32]: my_set = {'a', 'b', 'c', 'd'}

In [33]: print(my_set)
{'b', 'd', 'c', 'a'}

  很清晰的看出他是無序的

 

同時你也可以通過判斷語句" in "來獲取某個元素是否存在與集合中,他返回一個布爾類型

In [36]: my_set = {'a', 'b', 'c', 'd'}

In [37]: 'a' in my_set
Out[37]: True

In [38]: 'e' in my_set
Out[38]: False

  tips:Ture代表真,false代表假(相信大家都知道)

 

然後集合還有一個概念就是裏面的元素只能是唯一的,如果有重複的,會自動移除

In [1]: my_set = {'a', 'b', 'b', 'c', 'c', 'd'}

In [2]: my_set
Out[2]: {'a', 'b', 'c', 'd'}

  

除了通過花括號賦值,我們還可以直接調用 set() 方法,生成一個集合

In [3]: my_set = set('abcdefgabcdefg')

In [4]: my_set
Out[4]: {'a', 'b', 'c', 'd', 'e', 'f', 'g'}

  

下面我們要講到集合的一個重要的概念

集合的運算

“ - ”   差運算

In [5]: a = set('abcde')

In [6]: b = set('bdfgh')

In [7]: a - b
Out[7]: {'a', 'c', 'e'}

  只保留a獨有的元素,其他的如有與b相同的則移除

“ | ” 並運算

In [8]: a = set('abcde')

In [9]: b = set('bdfgh')

In [10]: a | b
Out[10]: {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'}

  包含a和b所有的元素,如果有重複的則只留一個

“ & ” 交運算,求交集

In [11]: a = set('abcde')

In [12]: b = set('bdfgh')

In [13]: a & b
Out[13]: {'b', 'd'}

  只保留a集合和b集合中相同的元素

“ ^ ” 求交集的補集

In [16]: a = set('abcde')

In [17]: b = set('bdfgh')

In [18]: a ^ b
Out[18]: {'a', 'c', 'e', 'f', 'g', 'h'}

  保留a和b都單獨存在的元素,去除a與b相同的元素

 

關於集合我們主要需要了解的只有這些,至於運用,後續講

 

在這我們再講最後一種數據類型

字典( Dictionaries)

在python中,字典是一個很常用的數據類型。在其他語言中,也有叫做關聯數組的

字典不像列表,元組,存在自動有順序的索引(index)

字典中的索引也就是必須手動建立的Key(鍵),每個鍵對應一個value(值)

而且鍵除了普通的數值類型之外,還可以用“String”類型

定義一個字典要用到“ { } ”,每個key後面加“ : ”(冒號)接value(值),再加一個值的話,用逗號隔開

例如,我們下面定義一個字典

In [23]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}

In [24]: my_dict
Out[24]: {'age': 18, 'name': 'susmote', 'tel': 1348888888}

  

下面我們通過key來獲取值

In [20]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}

In [21]: my_dict["name"]
Out[21]: 'susmote'

In [22]: my_dict["tel"]
Out[22]: 1348888888

  

如果你覺得裏面有個元素沒用了,你可以通過  “del()”方法來刪除

In [23]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}

In [24]: my_dict
Out[24]: {'age': 18, 'name': 'susmote', 'tel': 1348888888}

In [25]: del my_dict["tel"]

In [26]: my_dict
Out[26]: {'age': 18, 'name': 'susmote'}

  

你可以通過list()方法列出字典裏所有的key,或者是所有的value

In [32]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}

In [33]: list(my_dict.keys())
Out[33]: ['name', 'age', 'tel']

In [34]: list(my_dict.values())
Out[34]: ['susmote', 18, 1348888888]

  

排序,通過sorted()方法按照key的首字母順序進行排序

In [5]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}

In [6]: sorted(my_dict.keys())
Out[6]: ['age', 'name', 'tel']

  

前面講到集合可以通過 “in”   "not in"判斷一個keys是否存在與集合中,當然字典也是可以的,同樣也是返回一個布爾類型

In [41]: my_dict = {'name': "susmote", 'age': 18, 'tel': 1348888888}

In [42]: 'name' in my_dict
Out[42]: True

In [43]: 'name'not in my_dict
Out[43]: False

  

使用dict() 生成字典

In [44]: dict([('name', 'susmote'), ('age', 18), ('Tel', 13488888888)])
Out[44]: {'Tel': 13488888888, 'age': 18, 'name': 'susmote'}

  也可以直接這樣(字符串類型簡單的時候)

In [45]: dict(name = "susmote", age = 18, tel = 13488888888)
Out[45]: {'age': 18, 'name': 'susmote', 'tel': 13488888888}

  

python的數據類型大概就是這些,有一些知識點,我會在後面學了控制循環語句之後在講

我的博客網站 www.susmote.com

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章