PythonのNamedtuple
NamedTupleは、collectionsモジュールの下にある別のクラスです。ディクショナリタイプのオブジェクトと同様に、キーが含まれており、いくつかの値にマップされます。この場合、キーとインデックスを使用して要素にアクセスできます。
最初に使用するには、コレクションの標準ライブラリモジュールをインポートする必要があります。
import collections
このセクションでは、NamedTupleクラスのいくつかの関数について説明します。
NamedTupleのアクセス方法
NamedTupleから、インデックス、キー、およびgetattr()メソッドを使用して値にアクセスできます。 NamedTupleの属性値は順序付けられています。したがって、インデックスを使用してそれらにアクセスできます。
NamedTupleは、フィールド名を属性として変換します。したがって、getattr()を使用すると、その属性からデータを取得できます。
サンプルコード
import collections as col #create employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #Add two employees e1 = Employee('Asim', 'Delhi', '25000') e2 = Employee('Bibhas', 'Kolkata', '30000') #Access the elements using index print('The name and salary of e1: ' + e1[0] + ' and ' + e1[2]) #Access the elements using attribute name print('The name and salary of e2: ' + e2.name + ' and ' + e2.salary) #Access the elements using getattr() print('The City of e1 and e2: ' + getattr(e1, 'city') + ' and ' + getattr(e2, 'city'))
出力
The name and salary of e1: Asim and 25000 The name and salary of e2: Bibhas and 30000 The City of e1 and e2: Delhi and Kolkata
NamedTupleの変換手順
他のコレクションをNamedTupleに変換する方法がいくつかあります。 _make()メソッドを使用して、list、tupleなどの反復可能なオブジェクトをNamedTupleオブジェクトに変換できます。
辞書型オブジェクトをNamedTupleオブジェクトに変換することもできます。この変換には、**演算子が必要です。
NamedTupleは、キー付きの値をOrderedDictタイプのオブジェクトとして返すことができます。 OrderedDictにするには、_asdict()メソッドを使用する必要があります。
サンプルコード
import collections as col #create employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #List of values to Employee my_list = ['Asim', 'Delhi', '25000'] e1 = Employee._make(my_list) print(e1) #Dict to convert Employee my_dict = {'name':'Bibhas', 'city' : 'Kolkata', 'salary' : '30000'} e2 = Employee(**my_dict) print(e2) #Show the named tuple as dictionary emp_dict = e1._asdict() print(emp_dict)として表示します
出力
Employee(name='Asim', city='Delhi', salary='25000') Employee(name='Bibhas', city='Kolkata', salary='30000') OrderedDict([('name', 'Asim'), ('city', 'Delhi'), ('salary', '25000')])
NamedTupleでのいくつかの追加操作
_fields()や_replace()のような他のメソッドがあります。 _fields()メソッドを使用して、NamedTupleのさまざまなフィールドを確認できます。 _replace()メソッドは、他の値の値を置き換えるために使用されます。
サンプルコード
import collections as col #create employee NamedTuple Employee = col.namedtuple('Employee', ['name', 'city', 'salary']) #Add an employees e1 = Employee('Asim', 'Delhi', '25000') print(e1) print('The fields of Employee: ' + str(e1._fields)) #replace the city of employee e1 e1 = e1._replace(city='Mumbai') print(e1)
出力
Employee(name='Asim', city='Delhi', salary='25000') The fields of Employee: ('name', 'city', 'salary') Employee(name='Asim', city='Mumbai', salary='25000')
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',
-
PostgreSqlデータベースにPythonタプルを挿入する方法は?
PostgreSqlデータベースはデフォルトでポート番号5432にインストールされています。PostgreSqlへのPythonインターフェースは、psycopg2モジュールをインストールすることで提供されます。テストデータベースと、fname、sname、age、gender、salaryフィールドを持つemployeeテーブルが利用可能であると仮定します。 最初に接続を確立し、Pythonスクリプトのステートメントに従ってカーソルオブジェクトを取得します。 import psycopg2 conn = psycopg2.connect(database = "test"