需求:
當前有個字典例項,你想以某個字段比如」日期」對整個字典裡面的元素進行分組。
方法:
itertools.groupby()函式是專門用來幹這個活的。請看下面這個例子,這裡有乙個列表構成的字典,你想按照日期來對列表進行分組,可以這麼做:
in [42]: from operator import itemgetter
in [43]: from itertools import groupby
in [44]: rows = [
...: ,
...: ,
...: ,
...: ,
...: ,
...: ,
...: ,
...:
...: ]
in [45]: rows.sort(key=itemgetter('date'))
in [46]: for date, items in groupby(rows, key=itemgetter('date')):
...: print(date)
...: for i in items:
...: print(' ', i)
...:
07/01/2012
07/02/2012
07/03/2012
07/04/201212
3456
78910
1112
1314
1516
1718
1920
2122
2324
2526
2728
2930
3132
3334
35擴充套件:
實用groupby()函式前,必須對相應的要分組的字段進行排序,因為他只能對有序資料進行分組。如果你僅僅只是想針對日期進行分組並且允許隨機獲取,那可能更好的方法是實用defaultdict()先產生乙個多維字典,例如:
in [48]: from collections import defaultdict
in [49]: rows_by_date = defaultdict(list)
in [51]: for r in rows_by_date['07/01/2012']:
...: print(r)
...:
對於這個例子,並不需要先對記錄進行排序。因此如果不需要考慮記憶體,用這個方法比用groupby()要快得多。
————————————————
以某個字元開始 python的字串
python中字串是乙個重要的資料型別。字串是用引號括起來的0個或多個字元,當引號括起來的是0個字元,那就叫空字串。我們可以定義乙個變數,然後將乙個字串賦值給這個變數。字串是中的字元是有索引順序的,索引序號是從o開始,依次1 2 3 如果我們想取出字串中的某個字元,可以在變數跟乙個方括號內填上序號,...
python通過某個欄位將記錄分組
通過某個欄位將記錄分組 from operator import itemgetter from itertools import groupby rows operator模組提供的itemgetter函式用於獲取物件的哪些維的資料 rows.sort key itemgetter date fo...
判斷字元是否以某個字元開頭和結尾
def check str value 檢查你輸入的是否是字元型別 ifisinstance value,str 判斷字串以什麼結尾 if value.endswith sh return s 是以.sh結尾的字串 value 判斷字串以什麼開頭 elif value.startswith xi r...