Pythonプログラミング:名前付きタプルの使い方のポイントを詳しく解説
はじめに
この記事では、Python コレクション モジュールの紹介に引き続き、今回はその中の名前付きタプル、つまり、namedtuple の使用方法を主に紹介します。早速、始めましょう - いいね、フォロー、リツイートを忘れないでください~ ^_^
名前付きタプルの作成
Python コレクション内の名前付きタプル クラスnamedTuples がタプルです。各位置は以下を与えます。コードの意味を強調し、コードの読みやすさと説明を強化します。これらは通常のタプルが使用される場所であればどこでも使用でき、位置インデックスではなく名前によってフィールドにアクセスする機能を追加します。これは、Python 組み込みモジュール コレクションから取得されます。使用される一般的な構文は次のとおりです:
import collections XxNamedTuple = collections.namedtuple(typename, field_names):
インポート方法が異なる場合 (例: コレクションを cAlias としてインポート、コレクションからインポートのnamedtuple、コレクションからインポートの名前付きタプルをNamedTuple など)、このように、名前付きタプル作成するサブクラス フォームは次のものに対応できます:
XxNamedTuple = cAlias.namedtuple(……) XxNamedTuple = namedtuple(……) XxNamedTuple = NamedTuple(……)
そのうち:
Parameter typename: 返される新しいタプル サブクラス XxNamedTuple の文字列クラス名を指定します。プロパティ検索、位置インデックス付け、反復を通じてアクセスできる関連フィールドを持つタプルのようなオブジェクトを作成するための新しいサブクラス。サブクラスのインスタンスには、便利な docstring (typename と field_names を含むヘルプ ドキュメントに相当) と、タプルの内容を name=value 形式でリストする便利な __repr__() メソッドもあります。
パラメータ field_names: は通常、['x', 'y'] などの一連の文字列です。オプションで、field_names には、「 x y 」や「 x, y 」など、スペースやカンマで区切られた対応するフィールド名を含む文字列を指定できます。
有効な Python 識別子は名前付きフィールド名として使用できますが、アンダースコア (_) で始めることはできません。有効な識別子には文字、数字、アンダースコアが含まれますが、数字やアンダースコアで始まることはできません。また、class、return、global、pass、raise などのキーワードは使用できません。
NamedTuple がどのように機能するかを理解するために、id、name、および age プロパティを持つ Employee オブジェクトがあると仮定しましょう。コード サンプル リストを参照してください:
プログラムを実行した場合の出力は次のようになります:
Employee(, name='Solo Cui ', age='18') 按索引方式访问Employee的名子为 : Solo Cui Employee(, name='Annie Kent', age='26') 按键(字段名)访问Employee的名子为 : Annie Kent
さらに、関数には他のいくつかのパラメーターがあります。名前付きタプルを作成する関数が使用されます。ここでは簡単に説明します。
パラメータの名前変更: rename が true の場合、無効なフィールド名は自動的に位置名に置き換えられます。たとえば、['abc', 'def', 'ghi', 'abc'] は ['abc', '_1', 'ghi', '_3'] に変換され、キーワード def と重複するフィールド名 abc が削除されます。 。
パラメータのデフォルト: None またはデフォルト値の反復可能なオブジェクトです。デフォルト値を持つフィールドはデフォルト値のないフィールドの後に出現する必要があるため、デフォルト値は右端のパラメータに左から順に適用されます。たとえば、フィールド名が ['x', 'y', 'z'] で、デフォルト値が (1,2) の場合、x は必須パラメータとなり、y はデフォルトの 1、z はデフォルトになります。 2へ。
パラメータモジュール: モジュールが定義されている場合、名前付きタプルの __module__ 属性がこの値に設定されます。
名前付きタプル インスタンスは、インスタンスごとに個別の辞書を使用しないため、軽量であり、通常のタプルより多くのメモリを必要としません。
名前付きタプル固有のメソッド
タプルから継承されたメソッドに加えて、名前付きタプルは 3 つの追加メソッドと 2 つのプロパティをサポートします。フィールド名との競合を防ぐため、メソッド名とプロパティ名はアンダースコアで始まります。それらは次のように導入されます:
1) _make(iterable):
既存のシーケンスまたは反復可能なオブジェクトから新しいインスタンスを生成するクラス メソッド。コード例は次のとおりです。
出力結果は次のようになります。
Employee(, name='Batman', age='28')
2) _asdict ():
Return フィールド名を対応する値にマップする新しい辞書。サンプル コードは次のとおりです:
出力結果は次のようになります:
{'id': '333', 'name': 'Batman', 'age': '28'}
3)_replace (**kwargs):
指定されたフィールドを新しい値に置き換えて、名前付きタプルの新しいインスタンスを返します。コード例は次のとおりです。
出力結果は次のとおりです。
Employee(, name='Batman', age='34')
4) _fields:
は文字列要素を受け取ります。グループ内のフィールド名をリストします。イントロスペクションと、既存の名前付きタプルから新しい名前付きタプル タイプを作成するために使用されます。サンプル コードは次のとおりです。
#出力結果は次のとおりです。
('id', 'name', 'age')
我们可以使用_fields属性从现有的命名元组中创建新的命名元组。示例如下:
输出结果类似如下:
Pixel(x=5, y=8, red=128, green=255, blue=0)
结果的实体性赋值
这里所说的实体,类似Java中的数据实体对象——只有简单的属性字段。而命名元组在为csv或sqlite3模块操作而返回的元组结果分配给对应字段名而装配成简单实体时特别有用,自动进行字段的对应赋值。比如在当前Python程序位置有个employees.csv,其包含内容如下:
张三,26,工程师,开发部,中级 李四,32,项目经理,项目部,高级
通过示例,我们来完成Employee实体的命名元组的自动装配,代码示例如下:
输出结果类似如下:
张三 工程师 26 开发部 中级 李四 项目经理 32 项目部 高级
再简单地来个数据库操作和装配实体的示例,代码清单如下:
我这里只是简单的创建了数据库并创建表,然后插入一条数据,再查询并完成命名元组的实体化装配和结果输出。
运行输出结果如下:
王武 经理
本文小结
本文主要介绍了Python自带集合模块中的命名元组(namedtuple)的使用,即可以当做一般的元组使用,由可基于字段名的方式访问元组值,并介绍了命名元组内部扩展的几个方法和和属性的应用示例。最后还介绍了基于命名元组的实体化封装应用。基于代码示例进行介绍,这样便于你动手实践,以便更好地掌握和理解。
以上がPythonプログラミング:名前付きタプルの使い方のポイントを詳しく解説の詳細内容です。詳細については、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)

ホットトピック









MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

hadidb:軽量で高レベルのスケーラブルなPythonデータベースHadIDB(HadIDB)は、Pythonで記述された軽量データベースで、スケーラビリティが高くなっています。 PIPインストールを使用してHADIDBをインストールする:PIPINSTALLHADIDBユーザー管理CREATEユーザー:CREATEUSER()メソッド新しいユーザーを作成します。 Authentication()メソッドは、ユーザーのIDを認証します。 fromhadidb.operationimportuseruser_obj = user( "admin"、 "admin")user_obj。

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

MySQLは、基本的なデータストレージと管理のためにネットワーク接続なしで実行できます。ただし、他のシステムとのやり取り、リモートアクセス、または複製やクラスタリングなどの高度な機能を使用するには、ネットワーク接続が必要です。さらに、セキュリティ対策(ファイアウォールなど)、パフォーマンスの最適化(適切なネットワーク接続を選択)、およびデータバックアップは、インターネットに接続するために重要です。

MySQL接続は、次の理由が原因である可能性があります。MySQLサービスは開始されず、ファイアウォールは接続をインターセプトし、ポート番号が間違っています。ユーザー名またはパスワードが間違っています。My.cnfのリスニングアドレスは不適切に構成されています。トラブルシューティング手順には以下が含まれます。 2.ファイアウォール設定を調整して、MySQLがポート3306をリッスンできるようにします。 3.ポート番号が実際のポート番号と一致していることを確認します。 4.ユーザー名とパスワードが正しいかどうかを確認します。 5. my.cnfのバインドアドレス設定が正しいことを確認してください。

MySQLワークベンチは、構成が正しい場合、MariadBに接続できます。最初にコネクタタイプとして「mariadb」を選択します。接続構成では、ホスト、ポート、ユーザー、パスワード、およびデータベースを正しく設定します。接続をテストするときは、ユーザー名とパスワードが正しいかどうか、ポート番号が正しいかどうか、ファイアウォールが接続を許可するかどうか、データベースが存在するかどうか、MariadBサービスが開始されていることを確認してください。高度な使用法では、接続プーリングテクノロジーを使用してパフォーマンスを最適化します。一般的なエラーには、不十分な権限、ネットワーク接続の問題などが含まれます。エラーをデバッグするときは、エラー情報を慎重に分析し、デバッグツールを使用します。ネットワーク構成を最適化すると、パフォーマンスが向上する可能性があります

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

データの専門家として、さまざまなソースから大量のデータを処理する必要があります。これは、データ管理と分析に課題をもたらす可能性があります。幸いなことに、AWS GlueとAmazon Athenaの2つのAWSサービスが役立ちます。
