この記事で紹介する内容は、Python による公開鍵による辞書リストのソート (itemgetter 関数を使用) に関するもので、一定の参考価値があります。困っている友人が参照することができます。お役に立てれば幸いです。
1. 要件
辞書のリストがあり、1 つ以上の辞書の値に基づいてリストを並べ替えたいと考えています。2. 解決策
オペレーター モジュールで itemgetter 関数を使用して、このような構造を並べ替えるのは非常に簡単です。
例:
from operator import itemgetter rows=[ {'name':'mark','age':18,'uid':'110'}, {'name':'miaomiao','age':28,'uid':'150'}, {'name':'miaomiao','age':8,'uid':'150'}, {'name':'xiaohei','age':38,'uid':'130'}, ] rows_by_name=sorted(rows,key=itemgetter('name')) rows_by_uid=sorted(rows,key=itemgetter('uid')) print(rows_by_name) print(rows_by_uid) #itemgetter还支持多个键 rows_by_name_age=sorted(rows,key=itemgetter('name','age')) print(rows_by_name_age) #itemgetter同样适用min、max print(min(rows,key=itemgetter('uid'))) print(max(rows,key=itemgetter('age')))
実行結果:
[{'name': 'mark', 'age': 18, 'uid': '110'}, {'name': 'miaomiao', 'age': 28, 'uid': '150'}, {'name': 'miaomiao', 'age': 8, 'uid': '150'}, {'name': 'xiaohei', 'age': 38, 'uid': '130'}] [{'name': 'mark', 'age': 18, 'uid': '110'}, {'name': 'xiaohei', 'age': 38, 'uid': '130'}, {'name': 'miaomiao', 'age': 28, 'uid': '150'}, {'name': 'miaomiao', 'age': 8, 'uid': '150'}] [{'name': 'mark', 'age': 18, 'uid': '110'}, {'name': 'miaomiao', 'age': 8, 'uid': '150'}, {'name': 'miaomiao', 'age': 28, 'uid': '150'}, {'name': 'xiaohei', 'age': 38, 'uid': '130'}] {'name': 'mark', 'age': 18, 'uid': '110'} {'name': 'xiaohei', 'age': 38, 'uid': '130'}
Discussion
この例では、行が組み込みのsorted()関数に渡されます。この関数はキーワード引数 key を受け入れます。これは、行から単一の要素を入力として受け入れ、並べ替えに使用される値を返す呼び出し可能なオブジェクトを表す必要があります。 itemgetter() 関数は、そのような呼び出し可能なオブジェクトを作成します。
関数operator.itemgetter()で受け入れられるパラメータは、行レコードから必要な値を抽出するためのクエリマーカーとして使用できます。ディクショナリ キー名、数値リスト要素、またはオブジェクトの __getitem__() メソッドに渡すことができる任意の値を指定できます。複数のタグを itemgetter() に渡すと、生成される呼び出し可能オブジェクトはすべての要素を含むタプルを返し、sorted() はタプルのソート結果に従って出力結果を配置します。これは、複数のフィールドを同時に並べ替える場合に非常に便利です。
itemgetter() の関数を置き換えるためにラムダ式が使用されることがあります。たとえば、次のとおりです。
rows_by_uid=sorted(rows,key=lambda r:r['uid']) rows_by_name_age=sorted(rows,key=lambda r:(r['name','age']))
このソリューションは通常、正常に機能します。ただし、itemgetter() を使用すると、通常はより高速に実行されます。したがって、パフォーマンスの問題を考慮する必要がある場合は、 itemgetter().
を使用する必要があります。以上がPython 辞書リストを共通キーでソート(itemgetter関数を使用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

pythonusesahybridapproach、コンコイリティレーショントビテコードと解釈を組み合わせて、コードコンピレッドフォームと非依存性bytecode.2)

keydifferencesは、「for」と「while "loopsare:1)" for "for" loopsareideal forterating overencesonownowiterations、while2) "for" for "for" for "for" for "for" for "for" for for for for "wide" loopsarebetterunuinguntinunuinguntinisisisisisisisisisisisisisisisisisisisisisisisisisisisations.un

Pythonでは、さまざまな方法でリストを接続して重複要素を管理できます。1)オペレーターを使用するか、すべての重複要素を保持します。 2)セットに変換してから、リストに戻ってすべての重複要素を削除しますが、元の順序は失われます。 3)ループを使用するか、包含をリストしてセットを組み合わせて重複要素を削除し、元の順序を維持します。

fasteStMethodDodforListConcatenationinpythOndontsonistize:1)forsmallLists、operatorisefficient.2)forlargerlists、list.extend()orlistcomlethingisfaster、withextend()beingmorememory-efficient bymodifyigniviselistinistin-place。

to insertelementsIntopeaseThonList、useappend()toaddtotheend、insert()foraspificposition、andextend()formultipleElements.1)useappend()foraddingsingleitemstotheend.2)useintert()toaddataspecificindex、cont'slowerforforgelists.3)

PythonListsareimplementedasdynamicarrays、notlinkedlists.1)they restorediguourmemoryblocks、それはパフォーマンスに影響を与えることに影響を与えます

pythonoffersfourmainmethodstoremoveelements fromalist:1)removesthefirstoccurrenceofavalue、2)pop(index(index(index)removes regvess returnsaspecifiedindex、3)delstatementremoveselementselementsbyindexorseLice、および4)clear()

toresolvea "許可denided" errors whenrunningascript、sofflowthesesteps:1)checkandadaddadaddadadaddaddadadadaddadaddadaddadaddaddaddaddaddadaddadaddaddaddaddadaddaddaddadadaddadaddadaddadadisionsisingmod xmyscript.shtomakeitexexutable.2)


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

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

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
