一、簡(jiǎn)述
Python提供了多種內(nèi)置的數(shù)據(jù)結(jié)構(gòu),包括列表(List
)、元組(Tuple
)和字典(Dictionary
)。這些數(shù)據(jù)結(jié)構(gòu)在Python編程中都有著廣泛的應(yīng)用,但它們各有特點(diǎn)和適用場(chǎng)景。
-
列表是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。列表是可變的,也就是說,你可以修改列表的元素和大小。列表的元素可以是任何類型,包括數(shù)字、字符串、布爾值,甚至可以是其他列表。列表通常用于存儲(chǔ)有序的元素集合,例如一列數(shù)字或一組名字。
-
元組和列表非常相似,但元組是不可變的,也就是說,你不能修改元組的元素和大小。這使得元組比列表更安全,因?yàn)槟憧梢源_保元組的元素在程序運(yùn)行過程中不會(huì)被改變。元組通常用于存儲(chǔ)不應(yīng)該被改變的數(shù)據(jù)集,例如一個(gè)日期或一個(gè)地理位置的經(jīng)緯度。
-
字典是一種無(wú)序的集合,它存儲(chǔ)的是鍵值對(duì)。字典的鍵必須是唯一的,而值可以是任何類型。字典是可變的,也就是說,你可以添加、刪除和修改字典的鍵值對(duì)。字典通常用于存儲(chǔ)和查找鍵值對(duì),例如一個(gè)電話簿或一個(gè)詞頻統(tǒng)計(jì)。(哈希表)
-
集合是一個(gè)無(wú)序的,不重復(fù)的元素集?;竟δ馨P(guān)系測(cè)試和消除重復(fù)元素。集合對(duì)象還支持union(聯(lián)合),intersection(交),difference(差)和symmetric difference(對(duì)稱差集)等數(shù)學(xué)運(yùn)算。
對(duì)比
-
列表和元組都是有序的集合,它們的主要區(qū)別在于列表是可變的,而元組是不可變的。這意味著如果你需要一個(gè)可以隨時(shí)添加、刪除和修改元素的集合,你應(yīng)該使用列表;如果你需要一個(gè)一旦創(chuàng)建就不能更改的集合,你應(yīng)該使用元組。
-
字典和列表、元組的主要區(qū)別在于字典是無(wú)序的,而且它存儲(chǔ)的是鍵值對(duì)而不是單個(gè)的元素。這使得字典在處理需要鍵值對(duì)的數(shù)據(jù)時(shí)非常有用,例如在查找元素時(shí),字典的查找速度通常比列表和元組快。
-
集合和列表、元組、字典的主要區(qū)別在于集合是無(wú)序的,不重復(fù)的元素集。這使得集合在處理需要元素唯一性和集合操作的場(chǎng)合下非常有用,例如在查找元素時(shí),集合的查找速度通常比列表快。
二、Python中的列表詳解
Python中的列表(List)是一種常用的數(shù)據(jù)結(jié)構(gòu),它可以存儲(chǔ)一系列有序的元素。列表是可變的,這意味著你可以在創(chuàng)建列表后添加、刪除或更改其元素。列表中的元素可以是任何類型,包括數(shù)字、字符串、布爾值,甚至可以是其他列表。
2.1 創(chuàng)建列表
創(chuàng)建列表非常簡(jiǎn)單,只需要將元素放在方括號(hào)[]
中,并用逗號(hào),
分隔。例如:
my_list = [1, 2, 3, 'apple', 'banana', True]
在上面的例子中,my_list
就是一個(gè)包含了三個(gè)整數(shù)、兩個(gè)字符串和一個(gè)布爾值的列表。
2.2 訪問列表元素
你可以通過索引來(lái)訪問列表中的元素。在Python中,索引是從0開始的。例如,要訪問上面列表中的第一個(gè)元素,你可以這樣做:
first_item = my_list[0] # first_item 現(xiàn)在是 1
你也可以使用負(fù)索引來(lái)從列表的末尾開始訪問元素。例如,my_list[-1]
將返回列表中的最后一個(gè)元素。
2.3 修改列表元素
由于列表是可變的,你可以通過索引來(lái)修改列表中的元素。例如:
my_list[0] = 'orange' # my_list 現(xiàn)在是 ['orange', 2, 3, 'apple', 'banana', True]
2.4 列表切片
切片是一種獲取列表子集的方法。你可以通過指定開始索引和結(jié)束索引來(lái)獲取一個(gè)新的列表。例如:
sub_list = my_list[1:4] # sub_list 現(xiàn)在是 [2, 3, 'apple']
注意,切片是左閉右開的,也就是說,返回的新列表包含開始索引的元素,但不包含結(jié)束索引的元素。
2.5 列表方法
Python的列表提供了許多方法,如append()
、insert()
、remove()
、pop()
、sort()
等。這些方法可以讓你更方便地操作列表。
例如,append()
方法可以在列表的末尾添加一個(gè)新的元素:
my_list.append('grape') # my_list 現(xiàn)在是 ['orange', 2, 3, 'apple', 'banana', True, 'grape']
remove()
方法可以刪除列表中的特定元素:
my_list.remove('banana') # my_list 現(xiàn)在是 ['orange', 2, 3, 'apple', True, 'grape']
2.6 列表推導(dǎo)式
列表推導(dǎo)式是Python中創(chuàng)建列表的一種簡(jiǎn)潔方式。它可以用一行代碼生成一個(gè)新的列表。例如,下面的代碼生成了一個(gè)包含1到10的平方的列表:
squares = [x**2 for x in range(1, 11)] # squares 是 [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
三、Python中的元組詳解
Python中的元組(Tuple)是一種常用的數(shù)據(jù)結(jié)構(gòu),它可以存儲(chǔ)一系列有序的元素。元組和列表非常相似,但有一個(gè)關(guān)鍵的區(qū)別:元組是不可變的,這意味著你不能在創(chuàng)建元組后添加、刪除或更改其元素。元組中的元素可以是任何類型,包括數(shù)字、字符串、布爾值,甚至可以是其他元組或列表。
3.1 創(chuàng)建元組
創(chuàng)建元組非常簡(jiǎn)單,只需要將元素放在圓括號(hào)()
中,并用逗號(hào),
分隔。例如:
my_tuple = (1, 2, 3, 'apple', 'banana', True)
在上面的例子中,my_tuple
就是一個(gè)包含了三個(gè)整數(shù)、兩個(gè)字符串和一個(gè)布爾值的元組。
注意,如果你要?jiǎng)?chuàng)建一個(gè)只包含一個(gè)元素的元組,你需要在元素后面添加一個(gè)逗號(hào),例如my_tuple = (1,)
。
3.2 訪問元組元素
你可以通過索引來(lái)訪問元組中的元素。在Python中,索引是從0開始的。例如,要訪問上面元組中的第一個(gè)元素,你可以這樣做:
first_item = my_tuple[0] # first_item 現(xiàn)在是 1
你也可以使用負(fù)索引來(lái)從元組的末尾開始訪問元素。例如,my_tuple[-1]
將返回元組中的最后一個(gè)元素。
3.3 元組是不可變的
一旦元組被創(chuàng)建,你就不能更改它的元素或大小。這意味著你不能像列表那樣添加、刪除或修改元組的元素。如果你嘗試這樣做,Python將引發(fā)錯(cuò)誤。
my_tuple[0] = 'orange' # 這將引發(fā)錯(cuò)誤
盡管元組本身是不可變的,但如果元組中的元素是可變的(如列表),那么你可以修改這些元素。
3.4 元組切片
切片是一種獲取元組子集的方法。你可以通過指定開始索引和結(jié)束索引來(lái)獲取一個(gè)新的元組。例如:
sub_tuple = my_tuple[1:4] # sub_tuple 現(xiàn)在是 (2, 3, 'apple')
注意,切片是左閉右開的,也就是說,返回的新元組包含開始索引的元素,但不包含結(jié)束索引的元素。
3.5 元組方法
由于元組是不可變的,所以它的方法比列表少。Python的元組只提供了兩個(gè)方法:count()
和index()
。count()
方法用于計(jì)算元組中特定元素的數(shù)量,index()
方法用于找到元組中特定元素的第一個(gè)匹配項(xiàng)的索引。
my_tuple = (1, 2, 3, 2, 2, 4)
count = my_tuple.count(2) # count 現(xiàn)在是 3
index = my_tuple.index(2) # index 現(xiàn)在是 1
四、Python中的字典詳解
Python中的字典(Dictionary)是一種非常重要的數(shù)據(jù)結(jié)構(gòu),它存儲(chǔ)的是鍵值對(duì)(key-value pairs)。字典是可變的,這意味著你可以在創(chuàng)建字典后添加、刪除或更改其鍵值對(duì)。字典的鍵和值可以是任何類型,包括數(shù)字、字符串、布爾值,甚至可以是其他字典或列表。
4.1 創(chuàng)建字典
創(chuàng)建字典非常簡(jiǎn)單,只需要將鍵值對(duì)放在大括號(hào){}
中,并用逗號(hào),
分隔。每個(gè)鍵值對(duì)中的鍵和值用冒號(hào):
分隔。例如:
my_dict = {'name': 'Alice', 'age': 20, 'is_student': True}
在上面的例子中,my_dict
就是一個(gè)包含了三個(gè)鍵值對(duì)的字典。
4.2 訪問字典元素
你可以通過鍵來(lái)訪問字典中的值。例如,要訪問上面字典中的’name’鍵對(duì)應(yīng)的值,你可以這樣做:
name = my_dict['name'] # name 現(xiàn)在是 'Alice'
如果你嘗試訪問字典中不存在的鍵,Python將引發(fā)KeyError
。為了避免這種錯(cuò)誤,你可以使用get()
方法來(lái)訪問字典中的值,如果鍵不存在,get()
方法將返回None
或者你指定的默認(rèn)值。
city = my_dict.get('city', 'New York') # city 現(xiàn)在是 'New York'
4.3 修改字典元素
你可以通過鍵來(lái)修改字典中的值。例如:
my_dict['age'] = 21 # my_dict 現(xiàn)在是 {'name': 'Alice', 'age': 21, 'is_student': True}
你也可以使用update()
方法來(lái)一次更新字典中的多個(gè)鍵值對(duì)。
my_dict.update({'age': 22, 'city': 'London'}) # my_dict 現(xiàn)在是 {'name': 'Alice', 'age': 22, 'is_student': True, 'city': 'London'}
4.4 字典方法
Python的字典提供了許多方法,如keys()
、values()
、items()
、pop()
、clear()
等。這些方法可以讓你更方便地操作字典。
例如,keys()
方法可以返回字典中所有的鍵,values()
方法可以返回字典中所有的值,items()
方法可以返回字典中所有的鍵值對(duì):
keys = my_dict.keys() # keys 現(xiàn)在是 dict_keys(['name', 'age', 'is_student', 'city'])
values = my_dict.values() # values 現(xiàn)在是 dict_values(['Alice', 22, True, 'London'])
items = my_dict.items() # items 現(xiàn)在是 dict_items([('name', 'Alice'), ('age', 22), ('is_student', True), ('city', 'London')])
pop()
方法可以刪除并返回字典中特定鍵的值,clear()
方法可以清空字典:
age = my_dict.pop('age') # age 現(xiàn)在是 22,my_dict 現(xiàn)在是 {'name': 'Alice', 'is_student': True, 'city': 'London'}
my_dict.clear() # my_dict 現(xiàn)在是 {}
五、Python中的集合詳解
Python中的集合(Set)是一種獨(dú)特的數(shù)據(jù)結(jié)構(gòu),它提供了一種有效的方式來(lái)處理數(shù)據(jù)的唯一性和集合操作。集合是無(wú)序的,不重復(fù)的元素集,這意味著集合中的元素是唯一的,且不保證插入順序。
5.1 創(chuàng)建集合
創(chuàng)建集合非常簡(jiǎn)單,只需要將元素放在大括號(hào){}
中,并用逗號(hào),
分隔。例如:
my_set = {1, 2, 3, 'apple', 'banana', True}
在上面的例子中,my_set
就是一個(gè)包含了三個(gè)整數(shù)、兩個(gè)字符串和一個(gè)布爾值的集合。
注意,如果你要?jiǎng)?chuàng)建一個(gè)空集合,你需要使用set()
函數(shù),而不是空的大括號(hào),因?yàn)榭盏拇罄ㄌ?hào){}
在Python中表示一個(gè)空字典。
empty_set = set() # 創(chuàng)建一個(gè)空集合
5.2 集合的基本操作
集合提供了一系列的基本操作,包括添加元素、刪除元素和檢查元素是否存在。
my_set = {1, 2, 3}
my_set.add(4) # my_set 現(xiàn)在是 {1, 2, 3, 4}
my_set.remove(1) # my_set 現(xiàn)在是 {2, 3, 4}
print(2 in my_set) # 輸出 True
5.3 集合的數(shù)學(xué)運(yùn)算
集合支持一些常見的數(shù)學(xué)運(yùn)算,如并集、交集、差集和對(duì)稱差集。
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1.union(set2)) # 輸出 {1, 2, 3, 4, 5, 6}
print(set1.intersection(set2)) # 輸出 {3, 4}
print(set1.difference(set2)) # 輸出 {1, 2}
print(set1.symmetric_difference(set2)) # 輸出 {1, 2, 5, 6}
5.4 集合的應(yīng)用
由于集合中的元素是唯一的,所以集合常常被用來(lái)去除列表中的重復(fù)元素。
my_list = [1, 2, 2, 3, 3, 3]
my_set = set(my_list) # my_set 現(xiàn)在是 {1, 2, 3}
集合也常常被用在成員測(cè)試中,因?yàn)樵诩现胁檎以赝ǔ1仍诹斜碇胁檎以馗臁?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-692697.html
my_set = {1, 2, 3, 4, 5}
print(3 in my_set) # 輸出 True
把 永 遠(yuǎn) 愛 你 寫 進(jìn) 詩(shī) 的 結(jié) 尾 ~ 文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-692697.html
到了這里,關(guān)于【Python】基礎(chǔ)數(shù)據(jù)結(jié)構(gòu):列表——元組——字典——集合的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!