>백엔드 개발 >파이썬 튜토리얼 >파이썬 수집 모듈

파이썬 수집 모듈

不言
不言원래의
2018-04-09 12:03:151847검색

이 글에서 공유한 내용은 Python의 컬렉션 모듈에 관한 것으로, 특정 참조 가치가 있습니다. 도움이 필요한 친구는 이를 참조할 수 있습니다.

python의 컬렉션 모듈

컬렉션 모듈에 내장된 데이터 유형 int, str , list, dict 등, 몇 가지 추가 데이터 유형이 제공됩니다.

1.namedtuple(): 이름을 사용하여 요소 콘텐츠에 액세스할 수 있는 튜플 하위 클래스를 생성합니다.
2.deque: 반대편에서 객체를 빠르게 추가하고 푸시할 수 있는 이중 종료 큐
3.Counter: 카운터, 주로 계산에 사용됩니다
4.OrderedDict: 순서가 있는 사전
5.defaultdict: 기본값이 있는 사전

One: 명명된 튜플(), 명명된 튜플.

튜플은 불변 컬렉션이고, 네임드튜플은 사용자 정의 튜플 객체를 구성하는 데 사용되며 튜플 요소의 수를 인덱스가 아닌 속성을 통해 참조할 수 있습니다. 튜플의 불변 속성을 가지며 속성을 기반으로 참조할 수 있는 네임드튜플을 통해 데이터 유형을 쉽게 사용자 정의할 수 있습니다.

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')

관련 권장 사항:

기본 Python 콘텐츠: 컬렉션 모듈

Python 컬렉션 모듈과 깊고 얕은 복사본에 대한 심층적인 이해

위 내용은 파이썬 수집 모듈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.