91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

六個(gè)Python進(jìn)階用法介紹

python爬蟲知識(shí)分享 ? 來源:python爬蟲知識(shí)分享 ? 作者:python爬蟲知識(shí)分享 ? 2022-03-28 16:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 列表生成式和生成器

from numpy import random
a = random.random(10000)

lst = []
for i in a:
    lst.append(i * i)  # 不推薦做法

lst = [i * i for i in a]  # 使用列表生成式

gen = (i * i for i in a)  # 生成器更節(jié)省內(nèi)存

2 字典推導(dǎo)式創(chuàng)建子集

a = {'apple': 5.6, 'orange': 4.7, 'banana': 2.8}
da = {key: value for key, value in a.items() if value > 4.0}
print(da)  # {'apple': 5.6, 'orange': 4.7}

3 Key使用itemgetter多字段排序

from operator import itemgetter
a = [{'date': '2019-12-15', 'weather': 'cloud'},
     {'date': '2019-12-13', 'weather': 'sunny'},
     {'date': '2019-12-14', 'weather': 'cloud'}]

a.sort(key=itemgetter('weather', 'date'))
print(a)
# [{'date': '2019-12-14', 'weather': 'cloud'}, {'date': '2019-12-15', 'weather': 'cloud'}, {'date': '2019-12-13', 'weather': 'sunny'}]

4 Key使用itemgetter分組

from operator import itemgetter
from itertools import groupby
a.sort(key=itemgetter('weather', 'date'))  # 必須先排序再分組
for k, items in groupby(a, key=itemgetter('weather')):
    print(k)
    for i in items:
        print(i)

5 sum類聚合函數(shù)與生成器

Python中的聚合類函數(shù)sum,min,max第一個(gè)參數(shù)是iterable類型,一般使用方法如下:

a = [4,2,5,1]
sum([i+1for i in a]) # 16

使用列表生成式[i+1 for i in a]創(chuàng)建一個(gè)長度與a一樣的臨時(shí)列表,這步完成后,再做sum聚合。

試想如果你的數(shù)組a長度是百萬級(jí),再創(chuàng)建一個(gè)這樣的臨時(shí)列表就很不劃算,最好是一邊算一邊聚合,稍改動(dòng)為如下:

a = [4,2,5,1]
sum(i+1for i in a) # 16

此時(shí)i+1 for i in a(i+1 for i in a)的簡寫,得到一個(gè)生成器(generator)對(duì)象,如下所示:

In [8]:(i+1for i in a)
OUT [8]: at 0x000002AC7FFA8CF0>

生成器每迭代一步吐出(yield)一個(gè)元素并計(jì)算和聚合后,進(jìn)入下一次迭代,直到終點(diǎn)。

6 ChainMap邏輯上合并多個(gè)字典

dic1 = {'x': 1, 'y': 2 }
dic2 = {'y': 3, 'z': 4 }
merged = {**dic1, **dic2} # {'x': 1, 'y': 3, 'z': 4}

修改merged['x']=10,dic1中的x不變

ChainMap只在邏輯上合并,在內(nèi)部創(chuàng)建了一個(gè)容納這些字典的列表。

from collections import ChainMap
merged = ChainMap(dic1,dic2)
print(merged)
# ChainMap({'x': 1, 'y': 2}, {'y': 3, 'z': 4})

使用ChainMap合并字典,修改merged['x']=10,dic1中的x

審核編輯:湯梓紅

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

    關(guān)注

    9

    文章

    3212

    瀏覽量

    76383
  • 生成器
    +關(guān)注

    關(guān)注

    7

    文章

    322

    瀏覽量

    22723
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4877

    瀏覽量

    90078
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    軸驅(qū)動(dòng),如何一步到位?TMCM-6214 的多軸控制!

    多軸運(yùn)動(dòng)控制,聽起來就讓人頭大:布線像蜘蛛網(wǎng)、編程像天書、控制柜擠得像沙丁魚罐頭。每增加一個(gè)軸,線纜多一堆,代碼量蹭蹭漲,空間還得精打細(xì)算。一個(gè)模塊搞定六個(gè)軸有沒有一個(gè)模塊能把
    的頭像 發(fā)表于 03-05 16:05 ?57次閱讀
    <b class='flag-5'>六</b>軸驅(qū)動(dòng),如何一步到位?TMCM-6214 的多軸控制!

    C語言函數(shù)指針的六個(gè)高級(jí)的應(yīng)用場景

    函數(shù)指針是一種非常強(qiáng)大的編程工具,它可以讓我們以更加靈活的方式編寫程序。在本文中,我們將介紹 6 個(gè)函數(shù)指針的高級(jí)應(yīng)用場景,并貼出相應(yīng)的代碼案例和解釋。 回調(diào)函數(shù) 回調(diào)函數(shù)是指在某個(gè)事件發(fā)生時(shí)被
    發(fā)表于 01-04 12:25

    ETAS INCA軟件的五個(gè)實(shí)用進(jìn)階功能

    在上一篇文章中我們介紹了INCA軟件如何賦能高效的ECU開發(fā)及新能源挑戰(zhàn),本篇內(nèi)容將繼續(xù)深入探討INCA的五個(gè)實(shí)用進(jìn)階功能。
    的頭像 發(fā)表于 12-08 16:42 ?2398次閱讀
    ETAS INCA軟件的五<b class='flag-5'>個(gè)</b>實(shí)用<b class='flag-5'>進(jìn)階</b>功能

    C語言的printf基本用法介紹

    個(gè)小數(shù)。f 是 float 的簡寫。 除了這些,printf 支持更加復(fù)雜和優(yōu)美的輸出格式,考慮到讀者的基礎(chǔ)暫時(shí)不夠,我們將在《C語言數(shù)據(jù)輸出大匯總以及輕量進(jìn)階》一節(jié)中展開講解。 我們把代碼補(bǔ)充完整
    發(fā)表于 11-12 07:04

    Python調(diào)用API教程

    個(gè)不同系統(tǒng)之間的信息交互。在這篇文章中,我們將詳細(xì)介紹Python調(diào)用API的方法和技巧。 一、用Requests庫發(fā)送HTTP請(qǐng)求 使用Python調(diào)用API的第一步是發(fā)送HTTP
    的頭像 發(fā)表于 11-03 09:15 ?900次閱讀

    ?CDC204 3.3V路反相器/時(shí)鐘驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    CDC204 包含六個(gè)獨(dú)立的逆變器。該器件執(zhí)行布爾函數(shù) Y = A\。它專為開關(guān)輸出之間需要低偏斜的應(yīng)用而設(shè)計(jì)。 CDC204 的特點(diǎn)是從 T ~一個(gè)~ = 25°C 至 70°C。
    的頭像 發(fā)表于 09-24 10:50 ?2232次閱讀
    ?CDC204 3.3V<b class='flag-5'>六</b>路反相器/時(shí)鐘驅(qū)動(dòng)器技術(shù)文檔總結(jié)

    Linux基礎(chǔ)命令的進(jìn)階用法

    凌晨2點(diǎn),正在熟睡的你被電話驚醒:"線上服務(wù)響應(yīng)超時(shí),用戶大面積投訴!" 你匆忙打開電腦,SSH 登錄服務(wù)器,面對(duì)滿屏的進(jìn)程和日志,腦子一片空白——從哪里開始排查?用什么命令?怎么快速定位問題?
    的頭像 發(fā)表于 09-02 16:33 ?703次閱讀

    termux調(diào)試python猜數(shù)字游戲

    用termux做一個(gè)猜數(shù)字游戲 下面是在Termux中創(chuàng)建猜數(shù)字游戲的步驟及完整實(shí)現(xiàn)方案,結(jié)合Python實(shí)現(xiàn)(最適配Termux環(huán)境): ? 一、環(huán)境準(zhǔn)備(Termux基礎(chǔ)配置) 1.
    發(fā)表于 08-29 17:15

    SN74AHCT04路反相器技術(shù)解析與應(yīng)用指南

    Texas Instruments SN74AHCT04路逆變器包含六個(gè)獨(dú)立的逆變器并執(zhí)行布爾函數(shù)Y = A。Texas Instruments SN74AHCT04具有TTL輸入電平,允許從3.3V向上轉(zhuǎn)換到5V。
    的頭像 發(fā)表于 08-15 10:28 ?1767次閱讀
    SN74AHCT04<b class='flag-5'>六</b>路反相器技術(shù)解析與應(yīng)用指南

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階7 向系統(tǒng)中添加一個(gè)系統(tǒng)調(diào)用

    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)進(jìn)階篇-進(jìn)階7 向系統(tǒng)中添加一個(gè)系統(tǒng)調(diào)用
    的頭像 發(fā)表于 05-21 14:15 ?719次閱讀
    RK3568驅(qū)動(dòng)指南|驅(qū)動(dòng)基礎(chǔ)<b class='flag-5'>進(jìn)階</b>篇-<b class='flag-5'>進(jìn)階</b>7 向系統(tǒng)中添加一<b class='flag-5'>個(gè)</b>系統(tǒng)調(diào)用

    Altium Designer PCB設(shè)計(jì)高級(jí)進(jìn)階

    對(duì)PCB設(shè)計(jì)的高級(jí)進(jìn)階的內(nèi)容進(jìn)行相關(guān)的介紹 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一下哦~)
    發(fā)表于 04-27 16:40

    python入門圣經(jīng)-高清電子書(建議下載)

    和Pygal 等強(qiáng)大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內(nèi)容; 第二部分將理論付諸實(shí)踐,講解如何開發(fā)三個(gè)項(xiàng)目,包括簡單的Python
    發(fā)表于 04-10 16:53

    關(guān)于功率模塊冷卻的六個(gè)常見問題

    的壽命并使其發(fā)揮最佳性能。本文章將概述在為應(yīng)用設(shè)計(jì)功率模塊時(shí)可能出現(xiàn)的關(guān)于功率模塊冷卻的六個(gè)常見問題。1.器件溫度是否均勻?功率晶體管和二極管等功率元器件會(huì)產(chǎn)生局部熱
    的頭像 發(fā)表于 04-08 11:42 ?770次閱讀
    關(guān)于功率模塊冷卻的<b class='flag-5'>六個(gè)</b>常見問題

    函數(shù)指針的六個(gè)常見應(yīng)用場景

    函數(shù)指針在嵌入式開發(fā)中有著廣泛的應(yīng)用,它讓代碼更加靈活,減少冗余,提高可擴(kuò)展性。很多時(shí)候,我們需要根據(jù)不同的情況動(dòng)態(tài)調(diào)用不同的函數(shù),而函數(shù)指針正是實(shí)現(xiàn)這一需求的重要工具。本文將介紹六個(gè)常見的函數(shù)指針
    的頭像 發(fā)表于 04-07 11:58 ?1488次閱讀
    函數(shù)指針的<b class='flag-5'>六個(gè)</b>常見應(yīng)用場景

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    在這篇文章中,我將為你簡要介紹Python程序是什么、Python程序可以用來做什么,以及如何在RaspberryPi上編寫和運(yùn)行一個(gè)簡單的Pyth
    的頭像 發(fā)表于 03-25 09:27 ?2058次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?