0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

python語言之字典dict簡析

冬至配餃子 ? 來源:繆斯之子 ? 作者:肖新苗 ? 2022-08-23 10:17 ? 次閱讀

1.基本的增刪改查

def test_1():
# 增刪改查
dict1 = {'a': 1, 'b': 2}
dict1['c'] = 3
assert {'a': 1, 'b': 2, 'c': 3} == dict1, 'dict 新增失敗'

del dict1['b']
assert {'a': 1, 'c': 3} == dict1, 'dict 刪除失敗'
dict1['c'] = 4
assert {'a': 1, 'c': 4} == dict1, 'dict 修改失敗'

c = dict1['c']
assert 4 == c, 'dict 查詢失敗'
pass

2. in和enumerate方法

def test_2():
# in, enumerate
dict1 = {'a': 1, 'b': 2}
indexs = [i for i, v in enumerate(dict1.items()) if v[0] == 'b']
assert [1] == indexs, 'dict enumerate error'

assert 'a' in dict1, 'dict in error'
pass

3.方法: setdefault,update,get,pop,popitem

def test_3():
# setdefault,update,get,pop,popitem
# setdefault 如果沒有則增加,有則不變
dict1 = {'a': 1, 'b': 2}
dict1.setdefault('c', 4)
assert {'a': 1, 'b': 2, 'c': 4}, 'dict setdefault error'

dict1.setdefault('b', 1)
assert {'a': 1, 'b': 2, 'c': 4} == dict1, 'dict setdefault b error'

dict1.update({'c': 5})
assert {'a': 1, 'b': 2, 'c': 5} == dict1, 'dict update error'

c = dict1.get('c', 1)
assert 5 == c, 'dict get error'

f = dict1.get('f', 1)
assert 1 == f, 'dict get f error'

dict1.pop('c')
assert {'a': 1, 'b': 2} == dict1, 'dict pop error'

dict1.popitem()
assert {'a': 1} == dict1, 'dict popitem error'

pass

4. sort

def test_4():
# sort
dict1 = {'b': 2, 'a': 1}
dict2 = dict(sorted(dict1.items(), key=lambda kv: kv[0]))
assert {'a': 1, 'b': 2} == dict2, 'dict sorted 1 error'

dict1 = {'b': 2, 'a': 1, 'c': 1}
dict2 = dict(sorted(dict1.items(), key=lambda kv: (kv[1], kv[0])))
assert {'a': 1, 'c': 1, 'b': 2}

pass

5.淺復制和深復制

import copy

def test_5():
# 淺復制 和 深度復制
# 1.淺復制:不改變原字典
dict1 = {'a': 1, 'b': 2}
dict2 = dict1.copy()
dict2.update({'b': 1})
assert {'a': 1, 'b': 2} == dict1, 'dict copy 1 error'
assert {'a': 1, 'b': 1} == dict2, 'dict copy 1.1 error'

# 2.淺復制:改變原字典--子對象
dict1 = {'a': 1, 'b': {'c': 1}}
dict2 = dict1.copy()
dict2['b'].setdefault('d', 2)
assert {'a': 1, 'b': {'c': 1, 'd': 2}} == dict1, 'dict copy 2 error'
assert {'a': 1, 'b': {'c': 1, 'd': 2}} == dict2, 'dict copy 2.1 error'

# 3.深復制:不改變原字典
dict1 = {'a': 1, 'b': {'c': 1}}
dict2 = copy.deepcopy(dict1)
dict2['b'].setdefault('d', 2)
assert {'a': 1, 'b': {'c': 1}} == dict1, 'dict copy 3 error'
assert {'a': 1, 'b': {'c': 1, 'd': 2}} == dict2, 'dict copy 3.1 error'

pass

6.dict的各種初始化

def test_6():
# 方法:dict(p)

dict1 = {}
assert {} == dict1, 'dict new 1 error'

dict1 = dict()
assert {} == dict1, 'dict new 2 error'

dict1 = dict({'a': 1})
assert {'a': 1} == dict1, 'dict new 3 error'

dict1 = dict([('a', 1), ('b', 2)])
assert {'a': 1, 'b': 2} == dict1, 'dict new 4 error'

dict1 = dict(a=1, b=2)
assert {'a': 1, 'b': 2} == dict1, 'dict new 5 error'

params = {'a': 1, 'b': 2}
dict1 = dict(**params)
assert {'a': 1, 'b': 2} == dict1, 'dict new 6 error'
pass



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4813

    瀏覽量

    85316
收藏 人收藏

    評論

    相關(guān)推薦

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 一、主要編程語言 Python :Triton編譯器通過Python接口提供了對Triton語言
    的頭像 發(fā)表于 12-24 17:33 ?621次閱讀

    Pythondict支持多個key的方法

    ? 在Python中,字典dict)是一種非常強大的數(shù)據(jù)結(jié)構(gòu),它允許我們通過鍵(key)來存儲和檢索值(value)。有時候,我們可能想要根據(jù)多個鍵來檢索或操作字典中的數(shù)據(jù)。雖然
    的頭像 發(fā)表于 11-29 15:59 ?264次閱讀

    編程語言在人工智能中的使用

    。編程語言在AI的發(fā)展中扮演著至關(guān)重要的角色,它們?yōu)殚_發(fā)人員提供了構(gòu)建和實現(xiàn)智能系統(tǒng)的工具和框架。 1. Python Python是人工智能領域最受歡迎的編程語言之一,原因有以下幾點
    的頭像 發(fā)表于 11-15 09:34 ?578次閱讀

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨特的優(yōu)勢和適用場景。以下是對這兩種編程語言的對比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學者。
    的頭像 發(fā)表于 11-15 09:31 ?638次閱讀

    NPU支持的編程語言有哪些

    與NPU一起使用: C/C++ : C和C++是性能要求較高的應用的首選語言,尤其是在需要直接與硬件交互的場景中。許多NPU硬件都提供了C/C++接口,以便開發(fā)者能夠充分利用硬件性能。 PythonPython是深度學習和
    的頭像 發(fā)表于 11-15 09:21 ?1202次閱讀

    如何利用python和API查詢IP地址?

    Python中,直接查詢IP地址的地理位置或詳細信息(如所屬國家、城市等)通常需要依賴外部API服務,因為Python標準庫本身不提供直接查詢IP地址地理位置的功能。以下是一個使用requests
    發(fā)表于 08-28 11:55

    pytorch和python的關(guān)系是什么

    在當今的人工智能領域,Python已經(jīng)成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區(qū)支持,使其成為了數(shù)據(jù)科學、機器學習和深度學習等領域的首選語言。而
    的頭像 發(fā)表于 08-01 15:27 ?2709次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向?qū)ο蟮木幊?b class='flag-5'>語言,在科學計算、數(shù)學建模、數(shù)據(jù)分析等領域展現(xiàn)出了卓越的性能。其簡潔的語法、對動態(tài)輸入的支持以及解釋性語言的本質(zhì),使得Python
    的頭像 發(fā)表于 07-24 10:41 ?776次閱讀

    Python在AI中的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數(shù)據(jù)處理、模型訓練到高級的應用部署,Python都扮演著至關(guān)重要的角色。以下將詳細探討Python在AI中的幾個關(guān)鍵應用實例,包括機器學習、深度學習、自然
    的頭像 發(fā)表于 07-19 17:16 ?1741次閱讀

    Python語言基礎2

    電子發(fā)燒友網(wǎng)站提供《Python語言基礎2.rar》資料免費下載
    發(fā)表于 07-17 17:23 ?1次下載

    opencv-python和opencv一樣嗎

    是OpenCV的一個Python語言接口,它允許開發(fā)者使用Python語言來調(diào)用OpenCV庫的功能。 雖然OpenCV和OpenCV-Python
    的頭像 發(fā)表于 07-16 10:38 ?1624次閱讀

    Python中的人工智能框架與實例

    在人工智能(AI)領域,Python因其簡潔的語法、豐富的庫和強大的社區(qū)支持,成為了最受歡迎的編程語言之一。本文將詳細介紹Python中的人工智能框架,并通過具體實例展示如何使用這些框架來實現(xiàn)不同的人工智能應用。
    的頭像 發(fā)表于 07-15 14:54 ?2038次閱讀

    使用Python進行自然語言處理

    在探討使用Python進行自然語言處理(NLP)的廣闊領域時,我們首先需要理解NLP的基本概念、其重要性、Python在NLP中的優(yōu)勢,以及如何通過Python實現(xiàn)一些基礎的NLP任務
    的頭像 發(fā)表于 07-04 14:40 ?554次閱讀

    巖土工程監(jiān)測中振弦采集儀的布設方案及實施步驟

    巖土工程監(jiān)測中振弦采集儀的布設方案及實施步驟 巖土工程監(jiān)測中,河北穩(wěn)控科技振弦采集儀是一種常用的地下水位和土層壓縮性監(jiān)測工具。它通過采集振弦的振動信號來確定地下水位和土層的壓縮性,為巖土
    的頭像 發(fā)表于 05-06 13:25 ?351次閱讀
    巖土工程監(jiān)測中振弦采集儀的布設方案及實施步驟<b class='flag-5'>簡</b><b class='flag-5'>析</b>

    智慧燈桿一鍵告警功能的實用場景

    智慧路燈桿是一種兼具智能化和多功能的新型物聯(lián)網(wǎng)基礎設施,通過搭載一鍵告警對講盒,能夠大大豐富安防及報警求助資源,對提升城市的安全性和管理效能具有重要的作用。本篇就結(jié)合城市中的不同場景,智慧燈桿一鍵告警功能的實用功能。
    的頭像 發(fā)表于 04-28 16:42 ?463次閱讀
    <b class='flag-5'>簡</b><b class='flag-5'>析</b>智慧燈桿一鍵告警功能的實用場景