Python が itertools.groupby() を使用してフィールドに従ってレコードをグループ化する方法
1. 要件
一連のディクショナリまたはオブジェクト インスタンスがあり、特定のフィールドに従ってデータをグループ化して反復したいと考えています。
2. 解決策
itertools.groupby() 関数は、データをグループ化するときに特に便利です。
例:
from operator import itemgetter from itertools import groupby rows=[ {'name':'mark','age':18,'uid':'110'}, {'name':'miaomiao','age':28,'uid':'160'}, {'name':'miaomiao2','age':28,'uid':'150'}, {'name':'xiaohei','age':38,'uid':'130'}, ] #首先根据age排序 rows.sort(key=itemgetter('age')) for age,items in groupby(rows,key=itemgetter('age')): print(age) for i in items: print(i)
結果:
18 {'name': 'mark', 'age': 18, 'uid': '110'} 28 {'name': 'miaomiao', 'age': 28, 'uid': '160'} {'name': 'miaomiao2', 'age': 28, 'uid': '150'} 38 {'name': 'xiaohei', 'age': 38, 'uid': '130'}
3. 分析
ワンキー複数値辞書の実装の Python 実装
関数 groupby() は、シーケンスをスキャンして同じ値 (またはパラメーター キーで指定された関数によって返された値) を持つシーケンス項目を見つけ、それらをグループ化します。 groupby() は反復子を作成し、各反復子は値と sub_iterator を返します。この反復子は、グループ内のその値を持つすべての項目を生成できます。
ここで重要なのは、まず年齢に基づいてデータを並べ替えることです。 groupby() はソートしないためです。
単純にデータを日付に基づいてグループ化し、ランダム アクセスを可能にする大規模なデータ構造に入れる場合は、defaultdict() を使用して 1 キーの複数値の辞書を構築する方が良い場合があります。
from collections import defaultdict rows=[ {'name':'mark','age':18,'uid':'110'}, {'name':'miaomiao','age':28,'uid':'160'}, {'name':'miaomiao2','age':28,'uid':'150'}, {'name':'xiaohei','age':38,'uid':'130'}, ] rows_by_age=defaultdict(list) for row in rows: rows_by_age[row['age']].append(row) for a in rows_by_age[28]: print(a)
結果:
{'name': 'miaomiao', 'age': 28, 'uid': '160'} {'name': 'miaomiao2', 'age': 28, 'uid': '150'}
ソートを考慮しない場合、一般に、defaultdict メソッドの方が groupby よりも高速です。
以上がPython が itertools.groupby() を使用してフィールドに従ってレコードをグループ化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

Oracle Databaseファイル構造には、データファイル:実際のデータの保存が含まれます。制御ファイル:データベース構造情報を記録します。ログファイルをやり直す:データの一貫性を確保するために、トランザクション操作を記録します。パラメーターファイル:パフォーマンスを最適化するためのデータベースを実行するパラメーターを含みます。アーカイブログファイル:災害復旧のためのバックアップREDOログファイル。

Oracleデータベースログインには、ユーザー名とパスワードだけでなく、接続文字列(サーバー情報と資格情報を含む)および認証方法も含まれます。 SQL*Plusおよびプログラミング言語コネクタをサポートし、ユーザー名とパスワード、Kerberos、LDAPなどの認証オプションを提供します。一般的なエラーには、接続文字列エラーと無効なユーザー名/パスワードが含まれますが、ベストプラクティスは接続プーリング、パラメーター化されたクエリ、インデックス作成、セキュリティの資格情報の処理に焦点を当てています。

この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Cドライブ上のOracleデータベースの隠れ場所:レジストリ:レジストリエディターを使用して「Oracle」を検索してインストールパス、サービス名などを含む情報を見つけます。ファイルシステム:Oracleファイルは、ホームディレクトリ、システムファイル、一時ファイルなどを含むCドライブの複数の場所に散らばっています。慎重なアクション:Oracleをアンインストールするときは、ファイルを削除するだけでなく、レジストリとサービスをクリーンする必要があります。公式のアンインストールツールを使用するか、専門的なヘルプを求めることをお勧めします。スペース管理:ディスクスペースを最適化して、CドライブにOracleの設置を避けます。定期的に一時的なファイルを清掃します

開発環境とエコシステムにおけるLaravelとPythonの比較は次のとおりです。1。Laravelの開発環境は簡単で、PHPと作曲家のみが必要です。 Laravelforgeなどの豊富な範囲の拡張パッケージを提供しますが、拡張パッケージのメンテナンスはタイムリーではない場合があります。 2。Pythonの開発環境もシンプルで、PythonとPIPのみが必要です。エコシステムは巨大で複数のフィールドをカバーしていますが、バージョンと依存関係の管理は複雑な場合があります。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。
