ホームページ  >  記事  >  バックエンド開発  >  Pythonコレクションモジュール

Pythonコレクションモジュール

不言
不言オリジナル
2018-04-09 12:03:151838ブラウズ

この記事で共有する内容は、特定の参考値を持つ Python のコレクション モジュールに関するものです。必要な友人はそれを参照できます

Python のコレクション モジュール

コレクション モジュールの組み込みデータ型など。 int、str、list、dict など、いくつかの追加のデータ型が提供されます。

1.namedtuple(): 名前を使用して要素のコンテンツにアクセスできるタプルのサブクラスを生成します
2.deque: 反対側からオブジェクトを素早く追加およびプッシュできる両端キュー
3.Counter: カウンター、主にカウントに使用されます
4.OrderedDict: 順序付けられた辞書
5.defaultdict: デフォルト値を持つ辞書

One:namedtuple()、名前付きタプル。

tuple は不変のコレクションであり、namedtuple はカスタム タプル オブジェクトを構築するために使用され、タプルの要素の数をインデックスではなく属性を通じて参照できます。タプルの不変属性を持ち、その属性に基づいて参照できる、namedtuple を使用してデータ型を簡単にカスタマイズできます。

from collections import namedtuple
piont=namedtuple('piont',['x','y'])
p=piont(2,1)
print(p)
print("x =",p.x)
print("Y =",p.y)

>>>isinstance(p,piont)
True
>>>isinstance(p,tuple)
True

类似的创建一个圆,通过坐标,半径r。用namedtuple构建
Cirle=namedtup(‘Circle’,['x','y','r'])


2、有序字典(orderedDict )
dict中key是无序的,在做迭代时,无法确认key的顺序。
orderdDict是对字典类型的补充,他记住了字典元素添加的顺序
from collections import OrderedDict
od=OrderedDict([('a',1),('z',2),('c',3)])// 有序字典顺序是插入进去的顺序排列的
print(od)
d=dict([('a',1),('z',2),('c',3)])  //字典是无序的,key的顺序是变化的
print(d)
3、默认字典(defaultdict)
defaultdict是对字典的类型的补充,他默认给字典的值设置了一个类型。
我们都知道,在使用Python原生的数据结构dict的时候,如果用 d[key] 这样的方式访问, 当指定的key不存在时,是会抛出KeyError异常的。但是,如果使用defaultdict,只要你传入一个默认的工厂方法,那么请求一个不存在的key时, 便会调用这个工厂方法使用其结果来作为这个key的默认值。
4、计数器Counter
Counter是对字典类型的补充,用于追踪值的出现次数。
具备字典的所有功能+自己的功能
from collections import Counter
c=Counter(['11','22','11','33','11','44','55'])
c2=Counter("abcdefdasfdsafaf")
print(c)
print(c2)
most_common(self, n=None),数量从大到小排列,获取前N个元素。
elements(self) 计数器中的所有元素。注:此处非所有元素集合,而是包含所有元素集合的迭代器sorted(c.elements())
update(self,iterable=None,**keds):更新计数器,其实是增加计数器,如果没有则新建。
c.update('witch')
subtract(self, iterable=None, **kwds):相减,原来的计数器中的每一个元素的数量减去后添加的元素的数量c.subtract('witch')
rrreeerrreeerrreee

関連する推奨事項:

基本的な Python コンテンツ: コレクション モジュール

Python コレクション モジュールと深いコピーと浅いコピーについての深い理解

以上がPythonコレクションモジュールの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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