- 金融商業數據分析:基于Python和SAS
- 張秋劍 張浩 周大川 常國珍
- 1267字
- 2021-12-01 13:52:44
3.4 Python的基本數據結構
Python的基本數據結構包括列表(List)、元組(Tuple)、集合(Set)、字典(Dict)這些數據結構表示數據在Python中的存儲形式。在Python中,我們可以輸入type(對象)查看數據結構。
3.4.1 列表
1. 列表簡介
列表是Python內置的數據類型,是一種有序的集合,用來存儲一連串元素。列表用[]表示,其中的元素類型可不相同。例如:
>list1 = [1,'2',3,4] >list1 [1,'2',3,4]
除了使用[]表示列表外,我們還可以使用list函數。
>list([1,2,3]) [1, 2, 3] >list('abc') ['a', 'b', 'c']
可以通過索引訪問或修改列表中相應位置的元素。使用索引時,通過[]來指定位置。在Python中,索引的起始位置為0,例如取list1第1個位置的元素:
>list1[0] 1
可以通過“:”符號選取指定列表中相應位置的元素,例如取第1到第3個位置的元素。注意,這種索引取數是前包后不包的(包括0位置,但不包括3位置,即取0、1、2位置的元素):
>list1[0:3] [1, '2', 3]
此外,Python中的負索引表示倒序位置,例如-1代表list1最后一個位置的元素:
>list1[-1] 4
列表支持加法運算,表示兩個或多個列表合并為一個列表,如下所示:
>[1,2,3]+[4,5,6] [1, 2, 3, 4, 5, 6]
2. 列表對象中內置的方法
在Python中,列表對象中內置了一些方法。這里介紹append方法和extend方法。append方法表示在現有列表中添加一個元素。在循環控制語句中,append方法使用較多,示例如下:
> list2 = [1,2] > list2.append(3) > list2 [1 ,2 ,3]
extend方法類似于列表加法運算,表示合并兩個列表為一個列表,示例如下:
> list2 = [1,2] > list2.extend([3,4,5]) > list2 [1, 2, 3, 4,5]
3.4.2 元組
元組與列表類似,區別在于在列表中,任意元素可以通過索引進行修改。而在元組中,元素不可更改,只能讀取。下面展示了元組和列表的區別。我們可以對列表進行賦值,而同樣的操作應用于元組則會報錯。
>list0 = [1,2,3] > tuple0 = (1,2,3) > list0[1] = 'a' > list0 [1, 'a', 3] > tuple0[1] = 'a' TypeError Traceback (most recent call last) <iPython-input-35-2bfd4f0eedf9> in <module>() ----> 1 tuple0[1] = 'a' TypeError: 'tuple' object does not support item assignment
這里通過“()”表示元組。在Python中,元組類對象一旦定義則無法修改,但支持加運算,即合并元組。
>(1,2,3)+(4,5,6) (1, 2, 3, 4, 5, 6)
元組也支持像列表那樣通過索引訪問元素。
>t1 = (1,2,3) > t1[0] 1 > t1[0:2] (1,2)
3.4.3 集合
在Python中,集合是一組key的集合,且key不能重復。我們可以通過列表、字典或字符串等創建集合,或通過“{}”表示創建,示例如下:
>basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} >basket {'apple', 'banana', 'orange', 'pear'} >basket = set(['apple', 'orange', 'apple', 'pear', 'orange', 'banana']) > basket {'apple', 'banana', 'orange', 'pear'} > basket = set(('apple', 'orange', 'apple', 'pear', 'orange', 'banana')) > basket {'apple', 'banana', 'orange', 'pear'}
Python支持數學意義上的集合運算,比如差集、交集、補集、并集等,例如:
>A = {1,2,3} >B = {3,4,5}
A、B的差集,即去除集合A中集合A、B共有的元素:
>A – B {1, 2}
A、B的并集,即集合A與集合B的全部唯一元素:
>A | B {1, 2, 3, 4, 5}
A、B的交集,即集合A和集合B共有的元素:
>A & B {3}
A、B的對稱差,即集合A與集合B的全部唯一元素去除集合A與集合B的共有元素:
>A ^ B {1,2,4,5}
需要注意,集合不支持通過索引訪問指定元素。
3.4.4 字典
Python中內置了字典(在其他語言中也稱為Map),其使用鍵-值(key-value)存儲,以便提高查找速度。其格式是用大括號“{}”括起來,其中key和value用冒號“:”進行分隔,示例如下:
>dict1 = {'Nick':28,'Lily':28,'Mark':24} > dict1 {'Lily': 28, 'Mark': 24, 'Nick': 28}
字典本身是無序的,我們可以通過方法keys和values提取鍵-值對中的鍵和值,如下所示:
>dict1.keys() ['Nick', 'Lily', 'Mark'] > dict1.values() [28, 28, 24]
字典支持按照鍵訪問相應的值,如下所示:
>dict1['Lily'] 28
這里需要注意定義字典時,鍵不能重復,否則重復的鍵值會替代原先的鍵值。如下示例中,鍵‘Lily’重復,其值被替換。
>dict3 = {'Nick':28,'Lily':28,'Mark':24,'Lily':33} {'Lily': 33, 'Mark': 24, 'Nick': 28}
- .NET之美:.NET關鍵技術深入解析
- Mastering Selenium WebDriver
- C語言程序設計基礎與實驗指導
- Vue.js快跑:構建觸手可及的高性能Web應用
- Lua程序設計(第4版)
- Learning Network Forensics
- 圖數據庫實戰
- Access 2010中文版項目教程
- Learning Hadoop 2
- Hands-On Neural Network Programming with C#
- Struts 2.x權威指南
- AMP:Building Accelerated Mobile Pages
- Mastering Concurrency in Python
- 人人都能開發RPA機器人:UiPath從入門到實戰
- Learning Cocos2d-JS Game Development