ホームページ バックエンド開発 Python チュートリアル Pythonのitems()シリーズ関数の使い方を詳しく解説

Pythonのitems()シリーズ関数の使い方を詳しく解説

May 17, 2017 pm 03:11 PM
dictionary items() python 使用法

この記事では、Python の関数の items() 系列の使い方を中心に紹介します。必要な方は参考にしてください。 Python の関数は Python プログラミングに非常に役立ちます。具体的な分析は次のとおりです:

まず例を見てみましょう:

import html  # available only in Python 3.x 
def make_elements(name, value, **attrs): 
  keyvals = [' %s="%s"' % item for item in attrs.items()] 
  attr_str = ''.join(keyvals) 
  element = &#39;<{name}{attrs}>{value}</{name}>&#39;.format( 
      name = name, 
      attrs = attr_str, 
      value = html.escape(value)) 
  return element 
make_elements(&#39;item&#39;, &#39;Albatross&#39;, size=&#39;large&#39;, quantity=6) 
make_elements(&#39;p&#39;, &#39;<spam>&#39;)
ログイン後にコピー

このプログラムの機能は非常に単純で、

HTML タグ

を生成することです。HTML モジュールは Python 3.x でのみ使用できることに注意してください。 。 タグ

attributes

list を生成する keyval の辞書型 変数 が 2 つの %s が 1 つの項目に対応するという興味深い方法で構築されていることに今気づきました。 そこで、関連情報を確認したところ、多くのことがここにまとめられています。 注: 以下のすべての Python インタープリターで使用されるバージョンについては、2.x は 2.7.3 に対応し、3.x は 3.4.1 に対応します

Python 2.x では、公式ドキュメントの items メソッドは次のように説明されています: 次のような (キー, 値) ペアのリストを生成します:

>>> d = {&#39;size&#39;: &#39;large&#39;, &#39;quantity&#39;: 6} 
>>> d.items() 
[(&#39;quantity&#39;, 6), (&#39;size&#39;, &#39;large&#39;)]
ログイン後にコピー

search

のプロセスで、stackoverflow でこの質問を偶然見ました: What is theDifference between dict.items() と dict.iteritems( )? 、最初の答えは大まかにこれを意味します: 「最初は items() は上記のような dict のすべての要素を含むリストを返しましたが、これはメモリの無駄が多すぎるため、後で追加されました (注: Python では関数のグループ2.2 で登場し始めた iteritems()、iterkeys()、および itervalues() はメモリを節約するためにイテレータを返すために使用されますが、3.x では items() 自体がそのようなイテレータを返すため、3.x では

. x の items() の動作

は、2 の iteritems() の動作と一致しています。このステートメントは、3.x の items() の動作が 2.x の iteritems() とは異なることに注意してください。実際には、「完全なシーケンス プロトコル オブジェクト」を返します。この

オブジェクトは、dict の変更を反映できます。その後、3.x の動作との一貫性を保つために、別の関数 viewitems() が Python 2.7 に追加されました。コメント内のステートメントを確認するために、次のテストを実行しました。使用されているテスト Python バージョンに注意してください:

テスト 1 (Python 2.7.3):

Python 2.7.3 (default, Feb 27 2014, 19:58:35)  
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> d = {&#39;size&#39;: &#39;large&#39;, &#39;quantity&#39;: 6} 
>>> il = d.items() 
>>> it = d.iteritems() 
>>> vi = d.viewitems() 
>>> il 
[(&#39;quantity&#39;, 6), (&#39;size&#39;, &#39;large&#39;)] 
>>> it 
<dictionary-itemiterator object at 0x7fe555159f18> 
>>> vi 
dict_items([(&#39;quantity&#39;, 6), (&#39;size&#39;, &#39;large&#39;)])
ログイン後にコピー
テスト 2 (Python 3.4.1):
Python 3.4.1 (default, Aug 12 2014, 16:43:01)  
[GCC 4.9.0] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> d = {&#39;size&#39;: &#39;large&#39;, &#39;quantity&#39;: 6} 
>>> il = d.items() 
>>> it = d.iteritems() 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
AttributeError: &#39;dict&#39; object has no attribute &#39;iteritems&#39; 
>>> vi = d.viewitems() 
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
AttributeError: &#39;dict&#39; object has no attribute &#39;viewitems&#39; 
>>> il 
dict_items([(&#39;size&#39;, &#39;large&#39;), (&#39;quantity&#39;, 6)])
ログイン後にコピー

Python 3.x では iteritems() と viewitems() が廃止され、item() で得られる結果は 2.x の viewitems() と一致していることがわかります。

2.x では、iteritems() と viewitems() によって返されるコンテンツは、以下に示すように for を使用して走査できます

>>> for k, v in it: 
...  print k, v 
...  
quantity 6 
size large 
>>> for k, v in vi: 
...  print k, v 
...  
quantity 6 
size large
ログイン後にコピー

2 つの違いは何ですか? viewitems() は、ディクショナリ内の変更を反映できるビュー オブジェクトを返します。たとえば、上の例では、2 つの変数 it と vi を使用する前にキーと値の組み合わせを d に追加すると、違いが簡単にわかります。 。

>>> it = d.iteritems() 
>>> vi = d.viewitems() 
>>> d[&#39;newkey&#39;] = &#39;newvalue&#39; 
>>> d 
{&#39;newkey&#39;: &#39;newvalue&#39;, &#39;quantity&#39;: 6, &#39;size&#39;: &#39;large&#39;} 
>>> vi 
dict_items([(&#39;newkey&#39;, &#39;newvalue&#39;), (&#39;quantity&#39;, 6), (&#39;size&#39;, &#39;large&#39;)]) 
>>> it 
<dictionary-itemiterator object at 0x7f50ab898f70> 
>>> for k, v in vi: 
...  print k, v 
...  
newkey newvalue 
quantity 6 
size large 
>>> for k, v in it: 
...  print k, v 
...  
Traceback (most recent call last): 
 File "<stdin>", line 1, in <module> 
RuntimeError: dictionary changed size during iteration
ログイン後にコピー
3 行目で、新しい要素を d に挿入しました。vi はトラバースを続行でき、新しいトラバースは d の変更を反映できますが、トラバース時にエラー メッセージが表示され、トラバース時に辞書を求めるプロンプトが表示されます。サイズが変更され、横断は失敗しました。


要約すると、2.x では当初 items() メソッドが使用されていましたが、メモリの無駄が多すぎるため、3.x では item( の動作を返すために iteritems() メソッドが追加されました。 ) 返されるオブジェクトが元の辞書の変更も反映できるように、ビュー オブジェクトを返すように変更されました。同時に、viewitems() の下位互換性機能が 2.7 で追加されました。

3.x では、 items() メソッドが 1 つだけ保持されるため、3 つの違いについて心配する必要はありません。

この記事で説明されている例は、皆さんの Python プログラミングにとって一定の参考になると思います。

【関連する推奨事項】


1.

特別な推奨事項

:

「php Programmer Toolbox」V0.1 バージョンのダウンロード

2. Python の無料ビデオチュートリアル3. items() メソッド

4. Pythonのitem()関数を使用した辞書の走査例

5. 辞書にアクセスする3つの方法を紹介します

6.sortedのitemsとitemsの違い

以上がPythonのitems()シリーズ関数の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

ターミナルVSCODEでプログラムを実行する方法 ターミナルVSCODEでプログラムを実行する方法 Apr 15, 2025 pm 06:42 PM

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

vscodeとは何ですか?vscodeとは何ですか? vscodeとは何ですか?vscodeとは何ですか? Apr 15, 2025 pm 06:45 PM

VSコードは、Microsoftが開発した無料のオープンソースクロスプラットフォームコードエディターと開発環境であるフルネームVisual Studioコードです。幅広いプログラミング言語をサポートし、構文の強調表示、コード自動完了、コードスニペット、および開発効率を向上させるスマートプロンプトを提供します。リッチな拡張エコシステムを通じて、ユーザーは、デバッガー、コードフォーマットツール、GIT統合など、特定のニーズや言語に拡張機能を追加できます。 VSコードには、コードのバグをすばやく見つけて解決するのに役立つ直感的なデバッガーも含まれています。

Python:自動化、スクリプト、およびタスク管理 Python:自動化、スクリプト、およびタスク管理 Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Windows 8でコードを実行できます Windows 8でコードを実行できます Apr 15, 2025 pm 07:24 PM

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

Visual StudioコードはPythonで使用できますか Visual StudioコードはPythonで使用できますか Apr 15, 2025 pm 08:18 PM

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

See all articles