專案使用場景:需要對乙個包含字典的列表進行資料格式的轉化,指定 dict 中某個具體 key 的value 作為 新的 key,新的 value 是乙個列表,包含了原始的那些資料
from itertools import groupby
from operator import itemgetter
import pprint
d1=d2=
d3=d4=
d5=d6=
# 定義乙個原始的資料列表
lst=
[d1,d2,d3,d4,d5,d6]
pprint.pprint(lst)
[,
, ,, ,
]
# 將 country 的值作為 key,即通過 conutry 對原始資料進行分組。
# groupby() 函式用法
"""groupby(iterable, key=none)
返回乙個連續的由可迭代物件的 key, value 組成的迭代器。如果沒有指定 key 的函式或者為 none,將返回自身。
"""res = groupby(lst)
pprint.pprint(res)
[r for r in res]
[(,
),(, ),
(, ),
(, ),
(, ),
(, )]
res = groupby(lst, key=
lambda x:x[
'country'])
# 從上面的列表推導式可以看出每一條資料都是有兩個資料的元祖
res =
pprint.pprint(res)
,
],'jp': ,
'usa': [,
,]}
# 使用 itemgetter() 和使用 lambda 函式是一樣的效果 anyway 我們可以自定義函式來進行 key 值的處理
res = groupby(lst, key=itemgetter(
'country'))
res =
pprint.pprint(res)
,
],'jp': ,
'usa': [,
,]}
分組聚合函式使用
1.mysql 的分組合併函式group concat group concat 會計算哪些行屬於同一組,將屬於同一組的列顯示出來。要返回哪些列,由函 數引數 就是欄位名 決定。分組必須有個標準,就是根據group by指定的列進行分組。例 select 分組字段,group concat 合併字段...
Python中的分組函式groupby及其壓縮應用
我們先來看乙個題目 給定一組字元,使其壓縮,壓縮後的長度必須始終小於或等於原陣列長度。示例 1 輸入 a a b b c c c 輸出 a 2 b 2 c 3 說明 aa 被 a2 替代。bb 被 b2 替代。ccc 被 c3 替代。或者輸出乙個描述元組 輸入 a a b b c c c 輸出 a ...
Oracle 分組排序函式使用,獲取分組第一條資料
oracle 常用 group by 來進行分組查詢,但這裡使用row number over 函式,語法 row number over partition by 欄位1 order by 欄位2 欄位1表示根據此欄位分組,欄位2表示排序,此函式計算的值就表示每組內部排序後的順序編號。with t...