最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python3 數(shù)據(jù)結(jié)構(gòu)示例詳解

 更新時(shí)間:2025年11月11日 09:00:40   作者:小陶coding  
本文介紹了Python中的四種基本數(shù)據(jù)結(jié)構(gòu)——列表、元組、集合和字典,以及如何根據(jù)具體需求選擇合適的數(shù)據(jù)結(jié)構(gòu),文章還展示了如何使用這些數(shù)據(jù)結(jié)構(gòu)進(jìn)行基本操作,并提供了示例代碼,感興趣的朋友跟隨小編一起看看吧

一、列表(List)

列表是可變的、有序的元素集合,用方括號 [] 表示。列表支持異構(gòu)數(shù)據(jù)(可包含不同類型的元素)、索引訪問、切片操作和動態(tài)調(diào)整大小。

核心特點(diǎn):

  • 動態(tài)長度:可隨時(shí)添加或刪除元素。
  • 索引訪問:通過 list[index] 訪問元素,索引從 0 開始。
  • 支持切片:使用 list[start:stop:step] 獲取子列表。
  • 常用方法append()extend()、insert()、remove()pop()、sort()reverse() 等。

示例代碼:

# 創(chuàng)建列表
fruits = ["apple", "banana", "cherry"]
# 訪問元素
print(fruits[0])       # 輸出: apple
print(fruits[-1])      # 輸出: cherry(負(fù)索引從后往前)
# 修改元素
fruits[1] = "grape"    # 列表可變,修改第二個(gè)元素
# 切片操作
print(fruits[1:3])     # 輸出: ['grape', 'cherry']
# 添加元素
fruits.append("orange")  # 在末尾添加元素
fruits.insert(1, "lemon")  # 在指定位置插入元素
# 刪除元素
fruits.remove("apple")   # 刪除指定值的元素
popped = fruits.pop()    # 刪除并返回最后一個(gè)元素
# 列表操作
print(len(fruits))       # 輸出: 3(列表長度)
print("grape" in fruits) # 輸出: True(元素是否存在)

二、元組(Tuple)

元組是不可變的、有序的元素集合,用圓括號 () 表示。元組一旦創(chuàng)建,其元素不能被修改、添加或刪除,適合存儲不可變數(shù)據(jù)(如坐標(biāo)、配置參數(shù))。

核心特點(diǎn):

  • 不可變性:創(chuàng)建后無法修改,保證數(shù)據(jù)安全。
  • 索引訪問:與列表類似,但不能修改元素。
  • 支持切片:與列表類似,但返回新元組。
  • 常用操作:拼接、計(jì)數(shù)、查找等。

示例代碼:

# 創(chuàng)建元組
coordinates = (10, 20)
person = ("Alice", 30, "Engineer")
# 訪問元素
print(coordinates[0])    # 輸出: 10
# 元組不可變(以下代碼會報(bào)錯)
# coordinates[0] = 5     # TypeError: 'tuple' object does not support item assignment
# 元組操作
new_coords = coordinates + (30,)  # 拼接元組
print(new_coords)                # 輸出: (10, 20, 30)
print(person.count("Engineer"))  # 輸出: 1(元素出現(xiàn)次數(shù))
print(person.index(30))          # 輸出: 1(元素首次出現(xiàn)的索引)

三、集合(Set)

集合是無序的唯一的元素集合,用花括號 {} 或 set() 函數(shù)創(chuàng)建。集合主要用于去重和成員檢測,支持?jǐn)?shù)學(xué)集合運(yùn)算(如并集、交集、差集)。

核心特點(diǎn):

  • 無序性:元素沒有固定順序,不能通過索引訪問。
  • 唯一性:集合中不允許重復(fù)元素。
  • 可變但元素必須可哈希:集合本身可變,但元素必須是不可變類型(如數(shù)字、字符串、元組)。
  • 常用操作:并集(|)、交集(&)、差集(-)、對稱差集(^)等。

示例代碼:

# 創(chuàng)建集合
fruits_set = {"apple", "banana", "cherry"}
empty_set = set()  # 注意:{} 創(chuàng)建的是空字典,必須用 set() 創(chuàng)建空集合
# 自動去重
numbers = {1, 2, 2, 3, 3, 3}
print(numbers)     # 輸出: {1, 2, 3}
# 添加元素
fruits_set.add("orange")
# 刪除元素
fruits_set.remove("apple")  # 元素不存在時(shí)會報(bào)錯
fruits_set.discard("grape") # 元素不存在時(shí)不會報(bào)錯
# 集合運(yùn)算
set_a = {1, 2, 3}
set_b = {3, 4, 5}
print(set_a | set_b)        # 并集: {1, 2, 3, 4, 5}
print(set_a & set_b)        # 交集: {3}
print(set_a - set_b)        # 差集: {1, 2}
print(set_a ^ set_b)        # 對稱差集: {1, 2, 4, 5}

四、字典(Dictionary)

字典是可變的無序的鍵值對(key-value)集合,用花括號 {} 表示。字典通過鍵來快速查找對應(yīng)的值,鍵必須是唯一且不可變的(如字符串、數(shù)字、元組)。

核心特點(diǎn):

  • 鍵值對存儲:每個(gè)值對應(yīng)一個(gè)唯一的鍵。
  • 快速查找:基于哈希表實(shí)現(xiàn),查找效率為 O (1)。
  • 動態(tài)調(diào)整:可隨時(shí)添加、修改或刪除鍵值對。
  • 常用方法get()keys()、values()、items()、update() 等。

示例代碼:

# 創(chuàng)建字典
person = {
    "name": "Alice",
    "age": 30,
    "city": "New York"
}
# 訪問值
print(person["name"])      # 輸出: Alice
print(person.get("age"))   # 輸出: 30(使用 get() 避免鍵不存在時(shí)的錯誤)
# 修改值
person["age"] = 31         # 更新年齡
# 添加新鍵值對
person["job"] = "Engineer"
# 刪除鍵值對
del person["city"]         # 刪除指定鍵
popped_value = person.pop("age")  # 刪除并返回指定鍵的值
# 字典操作
print(len(person))         # 輸出: 2(鍵值對數(shù)量)
print("name" in person)    # 輸出: True(檢查鍵是否存在)
print(person.keys())       # 輸出: dict_keys(['name', 'job'])
print(person.values())     # 輸出: dict_values(['Alice', 'Engineer'])
print(person.items())      # 輸出: dict_items([('name', 'Alice'), ('job', 'Engineer')])

五、選擇合適的數(shù)據(jù)結(jié)構(gòu)

根據(jù)場景選擇數(shù)據(jù)結(jié)構(gòu)時(shí),可參考以下原則:

  • 需要有序且可重復(fù)的數(shù)據(jù):使用列表(List)。
  • 需要不可變數(shù)據(jù):使用元組(Tuple)。
  • 需要去重或集合運(yùn)算:使用集合(Set)。
  • 需要鍵值對映射:使用字典(Dictionary)。

六、自定義數(shù)據(jù)結(jié)構(gòu)

除了內(nèi)置數(shù)據(jù)結(jié)構(gòu),Python 還支持通過類(Class)自定義數(shù)據(jù)結(jié)構(gòu)。例如,實(shí)現(xiàn)一個(gè)簡單的棧(Stack):

class Stack:
    def __init__(self):
        self.items = []  # 使用列表存儲元素
    def is_empty(self):
        return len(self.items) == 0
    def push(self, item):
        self.items.append(item)  # 入棧操作
    def pop(self):
        if self.is_empty():
            raise Exception("Stack is empty")
        return self.items.pop()  # 出棧操作
    def peek(self):
        if self.is_empty():
            raise Exception("Stack is empty")
        return self.items[-1]    # 返回棧頂元素
    def size(self):
        return len(self.items)   # 返回棧的大小
# 使用自定義棧
stack = Stack()
stack.push(1)
stack.push(2)
print(stack.pop())  # 輸出: 2
print(stack.peek()) # 輸出: 1

通過掌握這些數(shù)據(jù)結(jié)構(gòu)及其適用場景,你可以更高效地組織和處理數(shù)據(jù),提升代碼的可讀性和性能。

到此這篇關(guān)于Python3 數(shù)據(jù)結(jié)構(gòu)示例詳解的文章就介紹到這了,更多相關(guān)Python 數(shù)據(jù)結(jié)構(gòu)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python函數(shù)缺省值與引用學(xué)習(xí)筆記分享

    python函數(shù)缺省值與引用學(xué)習(xí)筆記分享

    有關(guān)一個(gè)在函數(shù)參數(shù)設(shè)置缺省值與引用的問題,這個(gè)問題是大多數(shù)Pythoner可能會忽視的問題,作個(gè)筆記,以備后閱,同時(shí)供需要的朋友參考
    2013-02-02
  • 在VSCode中添加Python解釋器并安裝Python庫的方法

    在VSCode中添加Python解釋器并安裝Python庫的方法

    這篇文章主要介紹了在VSCode中添加Python解釋器并安裝Python庫的方法,本文分步驟通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • Django框架 信號調(diào)度原理解析

    Django框架 信號調(diào)度原理解析

    這篇文章主要介紹了Django框架 信號調(diào)度原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • python3實(shí)現(xiàn)tailf命令的示例代碼

    python3實(shí)現(xiàn)tailf命令的示例代碼

    本文主要介紹了python3實(shí)現(xiàn)tailf命令的示例代碼,tail -f 是一個(gè)linux的操作命令.其主要的是會把文件里的最尾部的內(nèi)容顯顯示在屏幕上,并且不斷刷新,只要文件有變動就可以看到最新的文件內(nèi)容,感興趣的可以了解一下
    2023-11-11
  • Python輕松實(shí)現(xiàn)將Excel數(shù)據(jù)批量導(dǎo)入數(shù)據(jù)庫

    Python輕松實(shí)現(xiàn)將Excel數(shù)據(jù)批量導(dǎo)入數(shù)據(jù)庫

    在日常數(shù)據(jù)處理工作中,將 Excel 文件內(nèi)容導(dǎo)入數(shù)據(jù)庫是一個(gè)常見需求,本文將基于輕量級 Excel 處理庫完成 Excel 文件解析,結(jié)合 Python 內(nèi)置的 SQLite 數(shù)據(jù)庫,實(shí)現(xiàn)多工作表自動識別、動態(tài)創(chuàng)建表結(jié)構(gòu)、批量數(shù)據(jù)入庫的完整方案,希望對大家有所幫助
    2026-04-04
  • 使用Python讀寫及壓縮和解壓縮文件的示例

    使用Python讀寫及壓縮和解壓縮文件的示例

    Python的os模塊中提供了基本的文件讀寫方法,而zipfile模塊則針對文件的壓縮和解壓縮操作,這里我們就來看一下使用Python讀寫及壓縮和解壓縮文件的示例:
    2016-07-07
  • Python中的各個(gè)多線程模塊之間的區(qū)別解析

    Python中的各個(gè)多線程模塊之間的區(qū)別解析

    Python中涉及多線程的主要模塊包括threading、thread和concurrent.futures,現(xiàn)代Python編程推薦使用threading和concurrent.futures,以提供更高層次的抽象和可用性,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • python如何對數(shù)組進(jìn)行降維

    python如何對數(shù)組進(jìn)行降維

    這篇文章主要介紹了python如何對數(shù)組進(jìn)行降維問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python+selenium 獲取瀏覽器窗口坐標(biāo)、句柄的方法

    Python+selenium 獲取瀏覽器窗口坐標(biāo)、句柄的方法

    今天小編就為大家分享一篇Python+selenium 獲取瀏覽器窗口坐標(biāo)、句柄的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • 基于keras 模型、結(jié)構(gòu)、權(quán)重保存的實(shí)現(xiàn)

    基于keras 模型、結(jié)構(gòu)、權(quán)重保存的實(shí)現(xiàn)

    今天小編就為大家分享一篇基于keras 模型、結(jié)構(gòu)、權(quán)重保存的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01

最新評論

凌云县| 鄂托克旗| 兴仁县| 翁牛特旗| 宁远县| 翁牛特旗| 上栗县| 瑞安市| 文化| 昌江| 正镶白旗| 枣庄市| 阳西县| 萨嘎县| 阿勒泰市| 芦溪县| 楚雄市| 嫩江县| 博罗县| 滁州市| 张家港市| 隆尧县| 宁都县| 淮滨县| 邳州市| 隆化县| 司法| 济宁市| 屏东县| 正宁县| 六盘水市| 英山县| 尖扎县| 大荔县| 桂林市| 泸州市| 偏关县| 崇州市| 库伦旗| 岳阳县| 西吉县|