官术网_书友最值得收藏!

3.1.1 常見數據結構

Python中常見的數據結構有列表(list)、元組(tuple)、集合(set)、字典(dict)等,這些數據結構表示了自身在Python中的存在形式,在Python中可以輸入type(對象)查看數據類型。

1.列表

(1)創建列表

列表是Python內置的一種數據類型,它是一種有序的數據集合,是用于存儲一連串元素的容器。列表用[]來表示,列表中的每個元素可以相同也可以不相同。


In [1]: list1 = ['wellcom','to','the','sjwjyaisf1688']

In [2]: list1
Out[2]: ['wellcom', 'to', 'the', 'sjwjyaisf1688']

In [3]: list2 = ['wellcom','to','the','sjwjyaisf1688',6,6,6]

In [4]: list2
Out[4]: ['wellcom', 'to', 'the', 'sjwjyaisf1688', 6, 6, 6]

除了可以使用“[]”創建列表外,還可以使用list()函數創建列表:


In [5]: list(['xiao','xiao','wa','jue','ji',666]
Out[5]: ['xiao', 'xiao', 'wa', 'jue', 'ji', 666]

In [6]: list('666')
Out[6]: ['6', '6', '6']

列表支持加法操作,即將兩個或多個列表合并為一個列表,具體操作如下:


In [7]: ['wellcom','to','te']+['xiao','xiao','ji','666']
Out[7]: ['wellcom', 'to', 'te', 'xiao', 'xiao', 'ji', '666']

(2)列表的方法

Python中的列表對象本身內置了一些方法,這里主要介紹常用的append方法和extend方法。append方法表示在現有列表的最后添加一個元素,一般在Python的循環控制語句中使用較多,具體示例如下:


In [8]: list2 = ['a','b','c']

In [9]: list2.append('d')

In [10]: list2
Out[10]: ['a', 'b', 'c', 'd']

In [11]: list3 = ['e','f']

In [12]: list2+list3
Out[12]: ['a', 'b', 'c', 'd', 'e', 'f']

append方法每次只能在當前列表的最后添加一個元素,而extend方法可以同時在當前列表的最后添加多個元素,類似于列表的加法(“+”)操作,表示將兩個列表合并為一個列表。


In [11]: list2 = [0,1,2]

In [12]: list2.extend([3,4,5])

In [13]: list2
Out[13]: [0, 1, 2, 3, 4, 5]

2.元組

元組與列表類似,區別在于列表中的元素可以修改,而元組中的元素只能讀取,不可更改。

(1)創建元組

創建元組的代碼示例如下:


In [14]: tuple1=1,2,3

In [15]: tuple2="sjwjyaisf1688","xiaoxiaowajueji666"

In [16]: tuple3=(1,2,3,4)

In [17]: tuple4=()

In [18]: tuple5=(1,)

In [19]: print(tuple1,tuple2,tuple3,tuple4,tuple5)
(1, 2, 3) ('sjwjyaisf1688', 'xiaoxiaowajueji666') (1, 2, 3, 4) () (1,)

從上面的結果我們可以簡單地總結出創建元組的幾個要點:

·逗號分隔元組中的值,元組自動創建完成;

·元組大多數時候是被括號包圍起來的;

·可以創建一個空元組,空元組外層只有一對括號;

·只含一個值的元組,必須在元組中加個逗號(,)。

與列表類似,元組也支持加法操作,即將兩個或多個元組合并為一個元組。


In [20]: (1,2,3)+(4,5,6)
Out[20]: (1, 2, 3, 4, 5, 6)

(2)元組賦值

需要注意的是,列表可以進行賦值操作,而元組則不可進行賦值操作。具體示例如下:


In [21]: list2[1]='a'

In [22]: list2
Out[22]: [0, 'a', 2, 3, 4, 5]

In [23]: tuple1[1] = 'a'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-23-8b1c599ad6fe> in <module>()
----> 1 tuple1[1] = 'a'

TypeError: 'tuple' object does not support item assignment

可以看到,對列表進行賦值操作可以順利完成,但試圖對元組進行賦值操作則會報錯,這也體現了元組中的元素不可更改的特點。

3.集合

在Python中,集合是一種特殊的數據結構,集合中的元素不能重復。可以通過列表、字典或字符串等數據結構來創建集合,也可以通過“{}”符號進行創建。在實際應用中,集合主要有兩個功能,一是進行集合操作,二是消除重復元素。


In [24]: drink = {'water','milk','lemonade','beer','sprite'}

In [25]: drink
Out[25]: {'beer', 'lemonade', 'milk', 'sprite', 'water'}

In[26]:drink = set(['water','milk','lemonade','beer','sprite','milk'])

In [27]: drink
Out[27]: {'beer', 'lemonade', 'milk', 'sprite', 'water'}

另外,Python支持數學上的集合運算,包括差集、交集、并集等,假設有兩個集合A、B:


In [28]: A = {1,2,3,4,5,6}

In [29]: B = {3,4,5}

下面分別舉例說明。

1)求集合A與集合B的差集,即集合A的元素去除集合A、B共有部分的元素:


In [30]: A-B
Out[30]: {1, 2, 6}

2)求集合A與集合B的并集,即集合A與集合B的全部唯一元素(這里其實就是集合A中的所有元素):


In [31]: A | B
Out[31]: {1, 2, 3, 4, 5, 6}

3)求集合A與集合B的交集,即集合A與集合B的共有元素:


In [32]: A & B
Out[32]: {3, 4, 5}

4.字典

字典與前面介紹的幾種數據結構都不太相同,它是使用鍵-值(key-value)對的方式來進行存儲的,具有方便快速查找的優點。與集合類似,字典也是使用符號“{}”括起來的,但其中的每個鍵-值對之間用冒號“:”進行對應。


In[33]:dict1 = {'xiaoming':24,'xiaofang':28,'zhangsan':21,'wangwu':27}

In [34]: dict1
Out[34]: {'wangwu': 27, 'xiaofang': 28, 'xiaoming': 24, 'zhangsan': 21}

字典本身是無序的,但可以分別通過keys和values方法獲取字典中的鍵和值。


In [35]: dict1.keys()
Out[35]: dict_keys(['xiaoming', 'xiaofang', 'zhangsan', 'wangwu'])

In [36]: dict1.values()
Out[36]: dict_values([24, 28, 21, 27])

另外,字典還支持通過鍵來訪問其對應的值:


In [37]: dict1['xiaoming']
Out[37]: 24

需要注意的是,在定義字典時,鍵不能重復,否則重復的鍵值會默認替換原來的鍵值。


In[38]:dict2={'xiaoming':24,'xiaofang':28,'zhangsan':21,'wangwu':27,'xiaoming':25}

In [39]: dict2
Out[39]: {'wangwu': 27, 'xiaofang': 28, 'xiaoming': 25, 'zhangsan': 21}

主站蜘蛛池模板: 繁峙县| 曲松县| 崇州市| 安顺市| 西畴县| 娄烦县| 大冶市| 上饶市| 凤翔县| 新巴尔虎右旗| 突泉县| 杭锦后旗| 东兰县| 怀来县| 溧阳市| 洛阳市| 梓潼县| 德格县| 筠连县| 南溪县| 增城市| 威海市| 沛县| 武安市| 澳门| 开阳县| 兰西县| 万全县| 离岛区| 藁城市| 永胜县| 泰顺县| 宽城| 来宾市| 饶河县| 榆中县| 万年县| 克山县| 常宁市| 霍城县| 涟源市|