Python提公升「技術逼格」的6個方法

2021-10-02 03:17:18 字數 2197 閱讀 5338

from numpy import random

a = random.random(10000)

lst =

for i in a:

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

gen = (i * i for i in a) # 生成器更節省記憶體

da =

from operator import itemgetter

a = [,,]

a.sort(key=itemgetter('weather', 'date'))

print(a)

# [, , ]

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)

python中的聚合類函式sum,min,max第乙個引數是iterable型別,一般使用方法如下:

a = [4,2,5,1]

sum([i+1for i in a]) # 16

使用列表生成式[i+1 for i in a]建立乙個長度與a一樣的臨時列表,這步完成後,再做sum聚合。

試想如果你的陣列a長度是百萬級,再建立乙個這樣的臨時列表就很不划算,最好是一邊算一邊聚合,稍改動為如下:

a = [4,2,5,1]

sum(i+1for i in a) # 16

此時i+1 for i in a(i+1 for i in a)的簡寫,得到乙個生成器(generator)物件,如下所示:

in [8]:(i+1for i in a)

out [8]:at 0x000002ac7ffa8cf0>

生成器每迭代一步吐出(yield)乙個元素並計算和聚合後,進入下一次迭代,直到終點。

dic1 = 

dic2 =

merged = #

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

chainmap只在邏輯上合併,在內部建立了乙個容納這些字典的列表。

from collections import chainmap

merged = chainmap(dic1,dic2)

print(merged)

# chainmap(, )

使用chainmap合併字典,修改merged['x']=10,dic1中的x改變

近期文章

python網路爬蟲與文字資料分析(學術)

杭州見|python&stata資料分析課寒假工作坊

2023年b站跨年晚會彈幕內容分析

綜述:文字分析在市場營銷研究中的應用

lazy prices公司年報內容變動碰上股價偷懶

使用pandas做資料視覺化

用statsmodels庫做計量分析

yelpdaset: 酒店管理類資料集10+g

nrc詞語情緒詞典和詞語色彩詞典

loughran&mcdonald金融文字情感分析庫

股評師分析報告文字情感分析**股價

使用分析師報告中含有的情感資訊**上市公司股價變動

一行pandas**生成啞變數

使用python讀取中的文字資料

**不到40行的超燃動態排序圖

經驗分享 提公升Python基礎技術逼格的6個方法

在學習過程中有什麼不懂得可以加我的 python學習資源qun,855408893 與你分享python企業當下人才需求及怎麼從零基礎學習好python,和學習什麼內容 from operator import itemgettera a.sort key itemgetter weather da...

提公升Python逼格的10個語法 上

python 是一種代表簡單思想的語言,其語法相對簡單,很容易上手。不過,如果就此小視 python 語法的精妙和深邃,那就大錯特錯了。本文精心篩選了最能展現 python 語法之精妙的十個知識點,並附上詳細的例項 如能在實戰中融會貫通 靈活使用,必將使 更為精煉 高效,同時也會極大提公升 b格,使...

提公升Python逼格的10個語法 下

python 是一種代表簡單思想的語言,其語法相對簡單,很容易上手。不過,如果就此小視 python 語法的精妙和深邃,那就大錯特錯了。本文精心篩選了最能展現 python 語法之精妙的十個知識點,並附上詳細的例項 如能在實戰中融會貫通 靈活使用,必將使 更為精煉 高效,同時也會極大提公升 b格,使...