>  기사  >  백엔드 개발  >  Python의 컬렉션 모듈에 대한 간략한 소개(예제 포함)

Python의 컬렉션 모듈에 대한 간략한 소개(예제 포함)

不言
不言원래의
2018-09-25 16:52:513067검색

이 글은 Python의 컬렉션 모듈에 대한 간략한 소개를 제공합니다(예제 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

collection 모듈:

내장 데이터 유형(dict, list, set, tuple)을 기반으로 컬렉션 모듈은 Counter, deque와 같은 몇 가지 추가 데이터 유형도 제공합니다. , defaultdict, namestuple, OrderedDict 등

1:namedtuple

이름을 사용하여 요소의 콘텐츠에 액세스할 수 있는 튜플을 생성합니다.
예: 좌표를 나타냅니다.
#🎜 🎜#

from collections import namedtuple
point = namedtuple('point',['x','y'])
p=point(1,2)
print(p.x)
print(p.y)
>>1
>>2

2:deque double-ended queue:

Double-ended queue는 상대방의 개체를 빠르게 추가하고 푸시할 수 있습니다.

리스트를 사용하여 데이터를 저장할 때 인덱스별로 요소에 접근하는 것은 빠르지만, 리스트가 선형 저장이기 때문에 요소를 삽입하고 삭제하는 속도가 매우 느리고, 데이터의 양이 많을 경우 삽입과 삭제 효율성이 떨어집니다. 매우 낮음
# 🎜🎜#deque는 삽입 및 삭제 작업의 효율적인 구현을 위한 양방향 목록이며 대기열 및 스택에 적합합니다

from collections import deque
q=deque(['a','b','c'])
q.append('x')
q.appendleft('y')
print(q)
rrree

3: 카운터 카운터

#🎜 🎜#Counter, 주로 counting#에 사용됩니다. 🎜🎜#값이 나오는 횟수를 추적하는 것이 목적입니다. 순서가 지정되지 않은 컨테이너 유형으로 사전에 키-값 쌍의 형태로 저장되며, 요소는 다음과 같습니다. 키로 사용되며 해당 개수는 값으로 사용됩니다.

카운트 값은 모든 정수(0 및 음수 포함)일 수 있습니다.

Create:

>>deque(['y', 'a', 'b', 'c', 'x'])

카운트 값 액세스 및 키 누락

액세스된 키가 없을 때 KeyError 대신 0을 반환합니다. 그렇지 않으면 해당 카운트를 반환합니다.

카운트 값에 액세스

# 🎜🎜#

from collections import Counter
#创建一个空的类
c=Counter()
#从一个可迭代对象中创建
c=Counter('gallahad')
#从一个字典对象创建
c=Counter({'a':2,'b':4})
#从一组键值对创建
c=Counter(a=2,b=4)

카운터 업데이트(업데이트 및 빼기)#🎜 🎜#반복 가능한 객체나 다른 Counter 객체를 사용하여 키-값 쌍을 업데이트할 수 있습니다

updateincrease
#🎜 🎜#

c=Counter('gallahad')
print(c['a'])
print(c['z'])
>>3
>>0

subtract 감소

#🎜🎜 #

c=Counter('gallahad')
c.update('chengzheng')
print(c['e'])
>>2
d=Counter('holloword')
c.update(d)
print(c['l'])
>>4

키 수정 및 삭제

카운트 값이 0이라고 해서 요소가 삭제되는 것은 아닙니다. , del


c=Counter('gallahad')
c.subtract('g')
print(c['g'])
>>0
d=Counter('all')
c.subtract(d)
print(c['l'])
>>0

elements( ):

반복자를 사용해야 합니다. 요소가 반복되는 횟수는 해당 요소가 반복자에 포함되는 횟수입니다. 요소는 정해진 순서 없이 배열되며, 1개 미만의 요소는 포함되지 않습니다.

c=Counter('gallahad')
print(c)
c['a']=0
print(c)
del c['l']
print(c)
>>Counter({'a': 3, 'l': 2, 'g': 1, 'h': 1, 'd': 1})
>>Counter({'l': 2, 'g': 1, 'h': 1, 'd': 1, 'a': 0})
>>Counter({'g': 1, 'h': 1, 'd': 1, 'a': 0})

most_common():

상위(n) 목록을 반환합니다. n을 지정하지 않으면 여러 요소가 동일한 개수 값을 갖는 경우 모든 요소가 반환됩니다.

c =Counter(a=4,b=2,c=0,d=-2)
a =list(c.elements())
print(a)
>>['a', 'a', 'a', 'a', 'b', 'b']

기타 작업:

c =Counter('xsgffikgkhgdyrduykkf')
a =c.most_common(3)
print(a)

4 :OrderdDict 주문된 사전

사전(dict)을 사용하면 사전을 반복할 때 키의 순서를 결정할 수 없습니다.
키를 순서대로 정렬하려면 OrderdDict를 사용할 수 있습니다.

from collections import OrderedDict

sum(c.values())  # 所有计数的总数
c.clear()  # 重置Counter对象,注意不是删除
list(c)  # 将c中的键转为列表
set(c)  # 将c中的键转为set
dict(c)  # 将c中的键值对转为字典
c.items()  # 转为(elem, cnt)格式的列表
Counter(dict(list_of_pairs))  # 从(elem, cnt)格式的列表转换为Counter类对象
c.most_common()[:-n:-1]  # 取出计数最少的n个元素
c += Counter()  # 移除0和负值

참고: OrderdDict는 다음과 같습니다. 키 자체가 아닌 삽입 순서로 정렬합니다.


d=dict([('a',1),('b',2),('c',3)])
print(d)
od=OrderedDict([('a',1),('b',2),('c',3)])
print(od)
>>{'c': 3, 'b': 2, 'a': 1}
>>OrderedDict([('a', 1), ('b', 2), ('c', 3)])

5:defaultdict: 기본값이 있는 사전 ​​


예:

에는 다음 값이 설정되어 있습니다 [11,22,33,44 , 55,66,77,88,99,90...], 66보다 큰 값은 모두 사전의 첫 번째 키에 저장하고, 66보다 작은 값은 두 번째 키의 값에 저장합니다.


즉: {'k1': 66보다 큼, 'k2': 66보다 작음}

from collections import defaultdict

od=OrderedDict([('a',1),('c',3),('b',2)])
print(od)
>>OrderedDict([('a', 1), ('c', 3), ('b', 2)])
values = [11, 22, 33,44,55,66,77,88,99,90]
my_dict = defaultdict(list)
for value in  values:
    if value>66:
        my_dict['k1'].append(value)
    else:
        my_dict['k2'].append(value)
print(my_dict)

위 내용은 Python의 컬렉션 모듈에 대한 간략한 소개(예제 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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