日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python之dict字典

發布時間:2024/1/1 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python之dict字典 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

dict字典

  • dict字典認知
    • 字典
      • 訪問字典里面的成員
        • 如何快速創建一個字典
          • 訪問字典成員
        • dict字典的修改
          • 添加
          • 注意:字典無序
            • 修改字典
            • 刪除字典中的數據
    • 未完待續.....

dict字典認知

字典(dictionary) 是鍵值對形式的可變容器,可存儲任意類型對象。而 列表(list) 是有序的對象結合,字典是無序的對象集合。何為有序?何為無序?有序即有 序列化結構 的,而無序則相反,之前有介紹過序列化結構(序列化結構:列表,字符串等),他們都有一個比較好理解的地方,就是 切片與索引 ( 何為切片?何為索引?),索引的好處就是我們在需要某一特定值的情況下可以快速的得到該值。
用請求百度翻譯api作為例子(請求百度api需要token,token申請學習鏈接),隨便認識一下字典:

#索引 #示例,請求百度翻譯api,百度翻譯返回的數據類型是json類型的。 import requests import random import json#使用百度的api是需要申請token的 token = '24.ba5b85a3a190c04301b7131c2.2592000.1666008679.282335-27512899' # 你申請的access_token,30天內有效,這個已經過期了 url = 'https://aip.baidubce.com/rpc/2.0/mt/texttrans/v1?access_token=' + tokenq = input('請輸入需要翻譯的內容:\n') from_lang = 'zh' # 源語種方向 to_lang = 'en' # 目標語種方向 term_ids = '' # 術語庫id# Build request #創建請求 #構建header部分Content-Type application/json;charset=utf-8 headers = {'Content-Type': 'application/json', 'charset': 'utf-8'}#字典,馬上介紹 #創建請求體 payload = {'q': q, 'from': from_lang, 'to': to_lang, 'termIds': term_ids}#字典,馬上介紹# Send request #發送請求 r = requests.post(url, params=payload, headers=headers) result = r.json()#將json數據進行類型轉換 #定義翻譯體 dict_translation_yuanshi = result['result']['trans_result'][0]['src'] print('翻譯的原始內容:',dict_translation_yuanshi) #定義翻譯結果 dict_translation_result = result['result']['trans_result'][0]['dst'] print('返回翻譯的結果:', dict_translation_result)

下面是上面代碼的運行結果:

#運行結果 ''' 請輸入需要翻譯的內容: 鐘離 返回的原始數據為: {'result': {'from': 'zh', 'trans_result': [{'dst': 'Zhong Li', 'src': '鐘離'}], 'to': 'en'}, 'log_id': 1573241566262597269} 翻譯的原始內容: 鐘離 返回翻譯的結果: Zhong Li '''

這些數據里除“原始數據”哪里沒有處理過外,剩下的都是經過處理的(為了直觀,我選擇將原始代碼輸出出來),可以清楚的看到翻譯結果是在

[{'dst': 'Zhong Li', 'src': '鐘離'}]

這個list[ ] 列表里面的,那個我們是如何將其單獨輸出出來的,答案是索引,不過前面是字典部分,就先簡單介紹一下字典:

字典

字典(dictionary,dict)的每個 鍵值 (key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中字典鍵的特性)不允許同一個鍵出現兩次。(key為鍵,value為對應的值)

創建時如果同一個鍵被賦值兩次,前一個的值會被后一個覆蓋 2)值可以取任何數據類型,但鍵必須是不可變的,如字符串,數字或元組。而因為列表是可變的,所以鍵不能為列表聲明存在的數據集合。

字典與列表相比,最大的不同在于字典是無序的,其成員位置只是象征性的,在字典中我們需要通過鍵來訪問成員,而不能通過其位置來訪問成員。

訪問字典里面的成員

先簡單創建一個字典,口訣:
鍵在前,值在后,關系用冒號,不同鍵間用逗號,萬事萬物都在{ }

口訣并不好,我現編的,各位大佬請輕噴

#字典,鍵在前,值在后 #鍵名key : 鍵值 #如 'name': '芽衣' (name為鍵名,芽衣為鍵值) dict_1 = {'name': '芽衣', 'age': 18, 'sex': '女'}#一個簡單的字典 print(dict_1) # 輸出完整的字典 print(dict_1.keys()) # 以list列表形式,輸出所有鍵 print(dict_1.values()) # 以list列表形式,輸出所有值 print(dict_1.items()) # 以list列表形式,輸出所有鍵值對元組

代碼運行結果為:

''' {'name': '芽衣', 'age': 18, 'sex': '女'} dict_keys(['name', 'age', 'sex']) dict_values(['芽衣', 18, '女']) dict_items([('name', '芽衣'), ('age', 18), ('sex', '女')]) '''

字典就是這樣的鍵值一一對應,相當于一個班里每一個人都有特定的學號,喊到那個人的學號或者名字的時候那個人就出來。當然這樣可能不能很好的理解字典無序,再示例:

dict = {} dict[3]='數字1' dict['one'] = "1" dict[2] = "2" print(dict) # 輸出完整的字典 print(dict['one']) # 輸出鍵為'one' 的值 print(dict[2]) # 輸出鍵為 2 的值

運行結果為:

''' {3: '數字1', 'one': '1', 2: '2'} 1 2 '''

注意:字典可以存儲任意類型對象!!!

如何快速創建一個字典

使用dict()函數創建字典
dict函數作用:通過其他映射(比如其他字典)或者(鍵,值)對的序列建立字典。

''' dict語法: class dict(**kwarg) class dict(mapping, **kwarg) class dict(iterable, **kwarg) '''dict1 = dict(a='a', b='b', t='t') # 傳入關鍵字 print(dict1) dict2 = dict(zip(['one', 'two', 'three'], [1, 2, 3])) # 映射函數方式來構造字典 print(dict2) dict3 = dict([('one', 1), ('two', 2), ('three', 3)]) # 可迭代對象方式來構造字典 print(dict3)''' 運行結果為: {'a': 'a', 'b': 'b', 't': 't'} {'one': 1, 'two': 2, 'three': 3} {'one': 1, 'two': 2, 'three': 3} '''

dict函數雖然好用,但是(重點): 使用dict()函數,dict值必須一一對應。
使用dict()函數,必須每個元組里的成比例。才能將元組轉成 key:value

使用fromkeys()函數創建字典:

''' 語法: dict.fromkeys(seq[, value])參數: seq -- 字典鍵值列表。 value -- 可選參數, 設置鍵序列(seq)的值。返回值: 該方法返回一個新字典。fromkeys() 函數用于創建一個新字典,以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。 '''dict3 = dict.fromkeys(['name','age']) print(dict3)dict4 = dict.fromkeys(['name','age'],10) print(dict4)

注意:fromkeys 方法只用來創建新字典,不負責保存。當通過一個字典來調用 fromkeys 方法時,如果需要后續使用一定記得給他復制給其他的變量。

訪問字典成員

如果要想獲取字典中某個鍵的值,可以通過訪問鍵的方式來顯示對應的值。

''' dict_1 = {'name': '芽衣', 'age': 18, 'sex': '女'}#一個簡單的字典 print(dict_1) # 輸出完整的字典 print(dict_1.keys()) # 以list列表形式,輸出所有鍵 print(dict_1.values()) # 以list列表形式,輸出所有值 print(dict_1.items()) # 以list列表形式,輸出所有鍵值對元組 {'name': '芽衣', 'age': 18, 'sex': '女'} dict_keys(['name', 'age', 'sex']) dict_values(['芽衣', 18, '女']) dict_items([('name', '芽衣'), ('age', 18), ('sex', '女')]) '''

get 獲取指定key 對應的value,如果key不存在返回none——語法:字典名.get(key):

a = {'name': '芽衣', 'age': 18} print(a.get('age')) #結果為: 18

setdefault(key)方法 (有此鍵則查,無則增):

di2 = {'name': '芽衣', 'age': 18} print(di2.setdefault('name'))#有此鍵則查 di2.setdefault('name1')#輸入鍵名,不輸入鍵值的話,鍵值會默認為None類型 print(di2) ''' 結果為: 芽衣 {'name': '芽衣', 'age': 18, 'name1': None} '''

當然查詢的前提是存在,如果你鍵名本來就不存在,那么又怎么查詢,這個時候就會給我們報錯了

dict_1 = {'name': '芽衣', 'age': 18, 'sex': '女'} print('不存在的鍵名:', dict_1['不存在'])

報錯:

''' 發生異常: KeyError '不存在' '''

dict字典的修改

添加

在python程序中字典的鍵是唯一的,但是值可以重復!

字典是一種動態結構,可以隨時在其中添加“鍵值”對。首先指定字典名,然后用中括號將鍵括起來,最后寫明這個鍵的值。

dict = {'1': "a", "2": "b", "3": "c"} # 創建字典dict['4'] = 'd' # 添加字典1 dict['5'] = 'e' # 添加字典2print(dict) # 輸出字典dict中的值 print('鍵值:',dict['1'])
注意:字典無序

“鍵值”對的排列順序與添加順序不同。因為python不關心鍵值對的添加順序,而只關心鍵和值之間的關聯關系!!!

修改字典

首先指定字典名,然后使用中括號把要修改的鍵和新值對應起來。
這和字典中添加數據好像一樣呢!其實可以很肯定的告訴大家,確實是完全一模一樣的,總結:有這個鍵則修改,無則添加!

dict={'鐘離':'往生堂堂主','神里凌華':'我老婆'} print(dict) #未修改的原始字典 dict['鐘離']='退休老人' print(dict) #修改后的字典 ''' 輸出結果為: {'鐘離': '往生堂堂主', '神里凌華': '我老婆'} {'鐘離': '退休老人', '神里凌華': '我老婆'} '''

可以看到字典的數據已經被修改了,當然如果好奇為什么前面的print函數沒有被改變的話,可以去看一下我之前的文章,了解一下 順序結構和邏輯結構 的區別。

此外還可以用update 更新字典、將原字典和新字典整合,key(鍵名)重復的話則新的覆蓋老的!

dict={'鐘離':'往生堂堂主','神里凌華':'我老婆'} print(dict) #未修改的原始字典 dict['鐘離']='退休老人' print(dict) #修改后的字典 dict.update({'心海':'我老婆','鐘離':'沒有摩拉'})#注意數據類型 print(dict) ''' 輸出結果為: {'鐘離': '往生堂堂主', '神里凌華': '我老婆'} {'鐘離': '退休老人', '神里凌華': '我老婆'} {'鐘離': '沒有摩拉', '神里凌華': '我老婆', '心海': '我老婆'} '''
刪除字典中的數據

在Python程序中,對于字典中不再需要的信息,可以使用del語句將相應的“鍵值”對信息徹底刪除。
在使用del語句刪除字典中數據時,必須指定字典名和要刪除的鍵。
上代碼:

dict={'鐘離':'往生堂堂主','神里凌華':'我老婆'} print(dict) #未修改的原始字典 dict['鐘離']='退休老人' print(dict) #修改后的字典 dict.update({'心海':'我老婆','鐘離':'沒有摩拉'}) print(dict) del dict['鐘離'] print(dict) ''' 輸出結果為: {'鐘離': '往生堂堂主', '神里凌華': '我老婆'} {'鐘離': '退休老人', '神里凌華': '我老婆'} {'鐘離': '沒有摩拉', '神里凌華': '我老婆', '心海': '我老婆'} {'神里凌華': '我老婆', '心海': '我老婆'} '''

可以看到名為鐘離的鍵已經被刪除了。
那么如何清空一個字典內所有數據?
:clear 清空字典——用法:字典名.clear()

dict={'神里凌華': '我老婆', '心海': '我老婆'} dict.clear() print(dict) ''' 輸出結果為: {} '''

未完待續…

總結

以上是生活随笔為你收集整理的Python之dict字典的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。