欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)根據(jù)字段將記錄分組操作示例

 更新時(shí)間:2018年03月19日 10:51:18   作者:壟上行  
這篇文章主要介紹了Python cookbook(數(shù)據(jù)結(jié)構(gòu)與算法)根據(jù)字段將記錄分組操作,結(jié)合實(shí)例形式分析了itertools.groupby()函數(shù)針對(duì)字典進(jìn)行分組操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了Python根據(jù)字段將記錄分組操作。分享給大家供大家參考,具體如下:

問題:想根據(jù)字典或者對(duì)象實(shí)例的某個(gè)特定的字典(比如日期)來(lái)分組迭代數(shù)據(jù)

解決方案:itertools.groupby()函數(shù)在對(duì)數(shù)據(jù)進(jìn)行分組時(shí)特別有用(前提是先以目標(biāo)字典進(jìn)行排序)

rows = [
  {'address': '5412 N CLARK', 'date': '07/01/2012'},
  {'address': '5148 N CLARK', 'date': '07/04/2012'},
  {'address': '5800 E 58TH', 'date': '07/02/2012'},
  {'address': '2122 N CLARK', 'date': '07/03/2012'},
  {'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'},
  {'address': '1060 W ADDISON', 'date': '07/02/2012'},
  {'address': '4801 N BROADWAY', 'date': '07/01/2012'},
  {'address': '1039 W GRANVILLE', 'date': '07/04/2012'},
]
from operator import itemgetter
from itertools import groupby
rows.sort(key=itemgetter('date')) #首先以date字段進(jìn)行排序
for date, items in groupby(rows, key=itemgetter('date')): #再以date進(jìn)行分組
  print(date)
  for i in items:
    print('  ', i)
# 如果只是簡(jiǎn)單地根據(jù)日期將數(shù)據(jù)分組到一起,放進(jìn)一個(gè)大的數(shù)據(jù)結(jié)構(gòu)中以允許進(jìn)行隨機(jī)訪問,那么可以利用defaultdict構(gòu)建一個(gè)一鍵多值的字典會(huì)更好
#Example of building a multidict
from collections import defaultdict
rows_by_date = defaultdict(list) #創(chuàng)建一個(gè)一鍵多值的字典,
for row in rows:
  rows_by_date[row['date']].append(row)
for r in rows_by_date['07/01/2012']:
  print(r)

運(yùn)行結(jié)果:

07/01/2012
   {'address': '5412 N CLARK', 'date': '07/01/2012'}
   {'address': '4801 N BROADWAY', 'date': '07/01/2012'}
07/02/2012
   {'address': '5800 E 58TH', 'date': '07/02/2012'}
   {'address': '5645 N RAVENSWOOD', 'date': '07/02/2012'}
   {'address': '1060 W ADDISON', 'date': '07/02/2012'}
07/03/2012
   {'address': '2122 N CLARK', 'date': '07/03/2012'}
07/04/2012
   {'address': '5148 N CLARK', 'date': '07/04/2012'}
   {'address': '1039 W GRANVILLE', 'date': '07/04/2012'}
{'address': '5412 N CLARK', 'date': '07/01/2012'}
{'address': '4801 N BROADWAY', 'date': '07/01/2012'}

(代碼摘自《Python Cookbook》)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python3獲取視頻文件播放時(shí)長(zhǎng)的三種方法

    python3獲取視頻文件播放時(shí)長(zhǎng)的三種方法

    這篇文章主要介紹了python3獲取視頻文件播放時(shí)長(zhǎng)的三種方法,VideoFileClip,CV2以及FFmpeg這三種方法,文章通過代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 20個(gè)解決日常編程問題的Python代碼分享

    20個(gè)解決日常編程問題的Python代碼分享

    在這篇文章中,主要和大家分享了20個(gè)Python代碼片段,以幫助你應(yīng)對(duì)日常編程挑戰(zhàn)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟上小編一起了解一下
    2023-01-01
  • Pandas庫(kù)中isnull函數(shù)的實(shí)現(xiàn)

    Pandas庫(kù)中isnull函數(shù)的實(shí)現(xiàn)

    isnull()是Pandas庫(kù)中DataFrame和Series對(duì)象的一個(gè)函數(shù),用于檢測(cè)數(shù)據(jù)中的缺失值,本文主要介紹了Pandas庫(kù)中isnull函數(shù)的實(shí)現(xiàn),具有一定參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • Python3.7 新特性之dataclass裝飾器

    Python3.7 新特性之dataclass裝飾器

    Python 3.7中一個(gè)令人興奮的新特性是 data classes 。這篇文章主要介紹了Python3.7 新特性之dataclass裝飾器,需要的朋友可以參考下
    2019-05-05
  • PyCharm虛擬環(huán)境中使用pip指令

    PyCharm虛擬環(huán)境中使用pip指令

    本文主要介紹了PyCharm虛擬環(huán)境中使用pip指令,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • django從請(qǐng)求到響應(yīng)的過程深入講解

    django從請(qǐng)求到響應(yīng)的過程深入講解

    這篇文章主要給大家介紹了關(guān)于django從請(qǐng)求到響應(yīng)的過程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • python thrift 實(shí)現(xiàn) 單端口多服務(wù)的過程

    python thrift 實(shí)現(xiàn) 單端口多服務(wù)的過程

    這篇文章主要介紹了python thrift 實(shí)現(xiàn) 單端口多服務(wù)的過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • selenium學(xué)習(xí)教程之定位以及切換frame(iframe)

    selenium學(xué)習(xí)教程之定位以及切換frame(iframe)

    這篇文章主要給大家介紹了關(guān)于selenium學(xué)習(xí)教程之定位以及切換frame(iframe)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 利用Python實(shí)現(xiàn)Excel的文件間的數(shù)據(jù)匹配功能

    利用Python實(shí)現(xiàn)Excel的文件間的數(shù)據(jù)匹配功能

    這篇文章主要介紹了利用Python實(shí)現(xiàn)Excel的文件間的數(shù)據(jù)匹配,本文通過一個(gè)函數(shù)實(shí)現(xiàn)此功能,通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • linux系統(tǒng)使用python監(jiān)測(cè)網(wǎng)絡(luò)接口獲取網(wǎng)絡(luò)的輸入輸出

    linux系統(tǒng)使用python監(jiān)測(cè)網(wǎng)絡(luò)接口獲取網(wǎng)絡(luò)的輸入輸出

    這篇文章主要介紹了linux系統(tǒng)使用python監(jiān)測(cè)網(wǎng)絡(luò)接口獲取網(wǎng)絡(luò)的輸入輸出信息,大家參考使用吧
    2014-01-01

最新評(píng)論