在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

python通過序列生成字典

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-29 17:39 ? 次閱讀

通過序列生成字典

我們將下面的序列轉換為dict類型。

lst=[('a',1),('b',2),('c',3)]

普通的寫法

fork,vinlst:
dic[k]=v

pythonic的寫法

利用字典推導式快速生成字典。

{k:vfork,vinlst}

key的默認值

當指定key不存在時,將value設置為 0。

普通的寫法

ifkeynotindct:
dct[key]=0

pythonic的寫法

dct[key]=dct.get(key,0)

交換key與value

普通的寫法

dic={'Python':1,'Java':2}
new_dic={}
fork,vindic.items():
new_dic[v]=k

pythonic的寫法

dic={'Python':1,'Java':2}
new_dic={v:kfork,vindic.items()}

序列修改和初始化

示例數據

lst=[('a',1),('b',2),('c',3)]
dic={'a':[0]}

如果我們需要根據lst來更新dic中的數據,當key存在,則將value添加到原序列末尾,否則初始化value并用序列保存。

普通的寫法

forkey,valueinlst:
ifkeyindic:
dic[key].append(value)
else:
dic[key]=[value]

pythonic的寫法

for(key,value)inlst:
group=dic.setdefault(key,[])
group.append(value)
# dic:{'a':[0, 1], 'b':[2], 'c':[3]}

setdefault(key, default)會先判斷key是否存在,存在則返回dct[key], 不存在則把dct[key]設為 [] 并返回。

key,items的集合運算

如果我們現在需要獲取兩個字典的key相交的部分的映射信息。

普通的寫法

dic1={'Python':1,'Java':2,'C':3}
dic2={'Python':3,'Java':2,'C++':1}

new_dic={}
fork,vindic1.items():
ifkindic2.keys():
new_dic[k]=v
print(new_dic)

#{'Python':1,'Java':2}

pythonic的寫法

dic1={'Python':1,'Java':2,'C':3}
dic2={'Python':3,'Java':2,'C++':1}

print({k:dic1[k]forkindic1.keys()&dic2.keys()})

#{'Python':1,'Java':2}

這里的dic1.keys() & dic2.keys()用到的就是keys()進行集合運算,items()同樣可以進行集合運算。

如果現在我們要獲取兩個字典中key,value完全相同的部分。

dic1={'Python':1,'Java':2,'C':3}
dic2={'Python':3,'Java':2,'C++':1}

print(dic1.items()&dic2.items())

#{('Java',2)}

靈活運用 keys,items() 集合運算的特性,可以快速提取我們想要的內容。

按key或value對字典排序

使用sorted()函數快速實現對keyvalue的排序。

dic={'a':2,'b':1,'c':3,'d':0}
lst1=sorted(dic.items(),key=lambdax:x[0],reverse=False)
#[('a',2),('b',1),('c',3),('d',0)]
lst2=sorted(dic.items(),key=lambdax:x[1],reverse=False)
#[('d',0),('b',1),('a',2),('c',3)]
print('按照鍵降序:',{key:valueforkey,valueinlst1})
print('按照值降序:',{key:valueforkey,valueinlst2})

#按照鍵降序:{'a': 2, 'b': 1, 'c': 3, 'd':0}
#按照值降序:{'d':0, 'b': 1, 'a': 2, 'c': 3}

多個字典排序

如果一個序列中包含多個字典,現在要根據條件對這些字典繼續排序。同樣可以使用sorted()函數來實現。

dict_list=[
{'letter':'B','number':'2'},
{'letter':'A','number':'3'},
{'letter':'B','number':'1'}
]

#按letter排序
print(sorted(dict_list,
key=lambdadic:dic['letter']))
#按letter,number排序
print(sorted(dict_list,
key=lambdadic:(dic['letter'],dic['number'])))

#[{'letter':'A','number':'3'},{'letter':'B','number':'2'},{'letter':'B','number':'1'}]
#[{'letter':'A','number':'3'},{'letter':'B','number':'1'},{'letter':'B','number':'2'}]

當然,如果你知道itemgetter()的話,上面的代碼就可以改變一下,執行速度會更快。

fromoperatorimportitemgetter

print(sorted(dict_list,
key=itemgetter('letter')))
print(sorted(dict_list,
key=itemgetter('letter','number')))

itemgetter()獲取的不是值,而是定義了一個函數,通過該函數作用到目標對象上。
審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4344

    瀏覽量

    62818
  • python
    +關注

    關注

    56

    文章

    4802

    瀏覽量

    84889
收藏 人收藏

    評論

    相關推薦

    Python中dict支持多個key的方法

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

    RNN在圖片描述生成中的應用

    輸入圖像的內容。 RNN的基本原理 RNN是一種用于處理序列數據的神經網絡,它通過循環結構來處理序列中的每個元素,并保持前一個元素的信息。RNN的主要特點是它能夠處理任意長度的序列,并
    的頭像 發表于 11-15 09:58 ?336次閱讀

    如何使用RNN進行時間序列預測

    一種強大的替代方案,能夠學習數據中的復雜模式,并進行準確的預測。 RNN的基本原理 RNN是一種具有循環結構的神經網絡,它能夠處理序列數據。在RNN中,每個輸入序列的元素都會通過一個或多個循環層,這些循環層可以捕獲時間
    的頭像 發表于 11-15 09:45 ?354次閱讀

    如何使用Python構建LSTM神經網絡模型

    numpy tensorflow 2. 準備數據 LSTM模型通常用于序列數據,比如時間序列預測或文本生成。這里我們以一個簡單的時間序列預測為例。假
    的頭像 發表于 11-13 10:10 ?489次閱讀

    如何使用 Llama 3 進行文本生成

    使用LLaMA 3(Large Language Model Family of AI Alignment)進行文本生成,可以通過以下幾種方式實現,取決于你是否愿意在本地運行模型或者使用現成的API
    的頭像 發表于 10-27 14:21 ?496次閱讀

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

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

    【「時間序列與機器學習」閱讀體驗】時間序列的信息提取

    模型效果與性能的過程。 時間序列的缺失值填充方法有:插值法;回歸填充;均值/中位數/眾數填充;可以借助 Python 的 Pandas庫,通過前向填充、后向填充、線性插值、均值/中位數/眾數填充等
    發表于 08-17 21:12

    【《時間序列與機器學習》閱讀體驗】+ 時間序列的信息提取

    之前對《時間序列與機器學習》一書進行了整體瀏覽,并且非常輕松愉快的完成了第一章的學習,今天開始學習第二章“時間序列的信息提取”。 先粗略的翻閱第二章,內容復雜,充斥了大量的定義、推導計算、代碼,好在
    發表于 08-14 18:00

    【「時間序列與機器學習」閱讀體驗】全書概覽與時間序列概述

    他領域(如自然語言處理、計算機視覺等)的關聯。 ●第2章“時間序列的信息提取”:介紹特征工程的核心概念及其在時間序列分析中的廣用,比如對原始數據進行歸一化、缺失值填充等轉換;以及如何通過特征工程從時間
    發表于 08-07 23:03

    python訓練出的模型怎么調用

    Python中,訓練出的模型可以通過多種方式進行調用。 1. 模型保存與加載 在Python中,訓練好的模型需要被保存,以便在其他程序或會話中使用。以下是一些常用的模型保存和加載方法。 1.1
    的頭像 發表于 07-11 10:15 ?2134次閱讀

    數字序列信號發生器如何測量

    數字序列信號發生器(Digital Sequence Signal Generator,簡稱DSSG)是一種用于生成數字序列信號的設備。它廣泛應用于通信、雷達、電子對抗等領域。本文將詳細介紹數字
    的頭像 發表于 06-03 14:04 ?460次閱讀

    如何使用Python生成四位隨機數字

    為了實現這些目標,Python 為我們提供了random() 模塊。random() 是一個內置的 Python 模塊,用于生成隨機數。
    的頭像 發表于 04-15 12:47 ?714次閱讀

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1276次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程

    TSMaster 序列發送模塊在汽車開發測試中的應用

    眾所周知,序列發送模塊可以不需要腳本代碼實現測試中特定控制報文序列的發送,該模塊多用于循環順序控制的測試案例中。序列發送模塊的常用場景,主要是針對一些新開發的產品需要通過該模塊來驗證產
    的頭像 發表于 02-19 14:00 ?723次閱讀
    TSMaster <b class='flag-5'>序列</b>發送模塊在汽車開發測試中的應用

    通過Python腳本實現WIFI密碼的自動猜解

    本文將記錄學習下如何通過 Python 腳本實現 WIFI 密碼的自動猜解。
    的頭像 發表于 01-25 10:46 ?3560次閱讀
    <b class='flag-5'>通過</b><b class='flag-5'>Python</b>腳本實現WIFI密碼的自動猜解
    主站蜘蛛池模板: 日a在线| 日韩午夜大片| 亚洲日本欧美日韩高观看| h视频在线免费看| 亚洲精品美女久久久aaa| 亚洲色图综合在线| 黄视频免费| 中国国产aa一级毛片| 亚洲色图日韩精品| 天堂bt资源在线官网| 鸥美三级| 久久精品视频国产| 俺色也| 深夜视频在线免费观看| 久久天天| 欧美黄区| 久久99国产精品久久99| 亚洲都市激情| 日本亚洲精品色婷婷在线影院| 欧美三级影院| 国产馆精品推荐在线观看| 97色在线播放| 免费又爽又黄1000禁片| 999精品国产| 色www亚洲国产张柏芝| 中韩日欧美电影免费看| 色综合天天综合网国产成人| 美女牲交毛片一级视频| 黄色视网站| h国产| 永久免费精品视频| 高清视频一区二区| 天天综合天天做天天综合| 日韩欧美亚洲综合久久影院d3| 免费公开视频人人人人人人人| 人人干人人爱| 韩国在线a免费观看网站| 天天伊人| 91午夜在线观看| 婷婷久| 国产女人视频|