一文學(xué)會(huì)Python中四大數(shù)據(jù)類型:字典、列表、集合、元組
Python是一門簡(jiǎn)潔、易讀、功能強(qiáng)大的編程語言,它擁有豐富的數(shù)據(jù)類型,其中字典、列表、集合、元組是最常用的幾種數(shù)據(jù)結(jié)構(gòu),它們各有特點(diǎn)和用途,掌握它們對(duì)提升編程效率至關(guān)重要。
一、列表(List)
列表是Python中最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)之一,它是一個(gè)有序的元素集合。你可以將它想象成一個(gè)容器,里面可以放置各種數(shù)據(jù)類型的元素,而且可以隨時(shí)添加或刪除元素。
1.創(chuàng)建列表
創(chuàng)建一個(gè)列表非常簡(jiǎn)單,只需要將元素放在方括號(hào)[]中,并用逗號(hào),分隔即可。
fruits = ["蘋果", "香蕉", "橙子"] # 創(chuàng)建一個(gè)水果列表
print(fruits)
2.訪問列表元素
你可以通過索引來訪問列表中的元素,索引是從0開始的。
print(fruits[0]) # 輸出"蘋果"
3.修改列表元素
列表是可變的,你可以修改其元素的值。
fruits[0] = "葡萄" # 將"蘋果"改為"葡萄"
print(fruits)
4.添加和刪除元素
你可以使用append()方法在列表末尾添加元素,使用insert()方法在指定位置插入元素,使用remove()方法刪除指定值的元素,使用pop()方法刪除指定位置的元素。
fruits.append("櫻桃") # 在列表末尾添加"櫻桃"
fruits.insert(1, "草莓") # 在索引1的位置插入"草莓"
fruits.remove("香蕉") # 刪除"香蕉"
print(fruits.pop(2)) # 刪除索引2的元素并返回該元素
print(fruits)
5.列表切片
你可以使用切片來獲取列表的一部分,切片的語法是start:stop:step,其中start是切片開始的位置,stop是切片結(jié)束的位置(不包括),step是步長(zhǎng)。
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(numbers[1:8:2]) # 獲取從索引1到索引7(不包括)的元素,步長(zhǎng)為2
6.列表推導(dǎo)式
列表推導(dǎo)式是一種簡(jiǎn)潔的創(chuàng)建列表的方法。
squares = [x ** 2 for x in range(10)] # 創(chuàng)建一個(gè)包含0到9的平方的列表
print(squares)
二、字典(Dictionary)
字典是一種無序的鍵值對(duì)集合,每個(gè)鍵都映射到一個(gè)值,鍵必須是不可變的類型,如字符串、數(shù)字或元組。
1.創(chuàng)建字典
創(chuàng)建字典的語法是{key1: value1, key2: value2, ...}。
person = {"name": "張三", "age": 30, "city": "北京"} # 創(chuàng)建一個(gè)包含個(gè)人信息的字典
print(person)
2.訪問字典元素
你可以使用方括號(hào)[]和鍵來訪問字典中的值。
print(person["name"]) # 輸出"張三"
3.修改和添加字典元素
你可以通過賦值的方式來修改或添加字典元素。
person["age"] = 31 # 修改年齡為31
person["gender"] = "男" # 添加性別信息
print(person)
4.刪除字典元素
你可以使用del語句或pop()方法來刪除字典元素。
del person["city"] # 刪除城市信息
print(person.pop("age")) # 刪除年齡信息并返回該值
print(person)
5.字典推導(dǎo)式
和列表推導(dǎo)式類似,字典也支持推導(dǎo)式。
squares = {x: x ** 2 for x in range(10)} # 創(chuàng)建一個(gè)鍵為0到9,值為鍵的平方的字典
print(squares)
三、集合(Set)
集合是一個(gè)無序且不重復(fù)的元素集合,你可以把它看作是沒有值的字典。
1.創(chuàng)建集合
創(chuàng)建集合的語法是{element1, element2, ...},或者使用set()函數(shù)。
fruits = {"蘋果", "香蕉", "橙子"} # 創(chuàng)建一個(gè)水果集合
print(fruits)
numbers = set([0, 1, 2, 3, 4, 5]) # 使用列表創(chuàng)建一個(gè)數(shù)字集合
print(numbers)
2.添加和刪除元素
你可以使用add()方法添加元素,使用remove()方法刪除元素。
fruits.add("葡萄") # 添加"葡萄"
fruits.remove("香蕉") # 刪除"香蕉"
print(fruits)
3.集合運(yùn)算
集合支持常見的數(shù)學(xué)集合運(yùn)算,如并集、交集、差集等。
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a | b) # 并集
print(a & b) # 交集
print(a - b) # 差集
四、元組(Tuple)
元組是一個(gè)不可變的有序元素集合,一旦創(chuàng)建就不能修改。
1.創(chuàng)建元組
創(chuàng)建元組的語法是(element1, element2, ...),如果元組只有一個(gè)元素,后面必須加逗號(hào),。
t = (1, 2, 3) # 創(chuàng)建一個(gè)包含1, 2, 3的元組
print(t)
single = (1,) # 創(chuàng)建一個(gè)只包含1的元組
print(single)
2.訪問元組元素
你可以使用索引來訪問元組中的元素。
print(t[0]) # 輸出1
3.元組運(yùn)算
元組支持加法和乘法運(yùn)算。
t1 = (1, 2, 3)
t2 = (4, 5, 6)
print(t1 + t2) # 連接兩個(gè)元組
print(t1 * 3) # 重復(fù)三次
五、區(qū)別
特性 | 字典 (Dictionary) | 列表 (List) | 集合 (Set) | 元組 (Tuple) |
定義 | 由鍵值對(duì)組成 | 有序的元素集合 | 無序的唯一元素集合 | 有序的元素集合 |
語法 | {鍵1: 值1, 鍵2: 值2, ...} | [元素1, 元素2, ...] | {元素1, 元素2, ...} | (元素1, 元素2, ...) |
可變性 | 可變 | 可變 | 可變 | 不可變 |
索引 | 通過鍵來訪問值 | 通過位置索引來訪問元素 | 不能通過索引訪問 | 通過位置索引來訪問元素 |
重復(fù)元素 | 鍵必須唯一,值可以重復(fù) | 允許 | 不允許 | 允許 |
排序 | Python 3.7+ 默認(rèn)按插入順序排序 | 默認(rèn)按元素插入順序排序 | 無序 | 默認(rèn)按元素插入順序排序 |
查找效率 | 高,使用哈希表 | 低,需要遍歷 | 高,使用哈希表 | 低,需要遍歷 |
可哈希性 | 鍵必須是可哈希的 | 不可哈希 | 元素必須是可哈希的 | 可哈希 |
方法 | 提供大量的方法,如get(), keys() | 提供多種方法,如append(), pop() | 提供集合運(yùn)算等方法,如add(), remove() | 方法較少,如count(), index() |
注意:雖然元組是不可變的,但如果元組中包含了可變對(duì)象(如列表),那么這些可變對(duì)象是可以被修改的。