이 글은 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
리스트를 사용하여 데이터를 저장할 때 인덱스별로 요소에 접근하는 것은 빠르지만, 리스트가 선형 저장이기 때문에 요소를 삽입하고 삭제하는 속도가 매우 느리고, 데이터의 양이 많을 경우 삽입과 삭제 효율성이 떨어집니다. 매우 낮음
# 🎜🎜#deque는 삽입 및 삭제 작업의 효율적인 구현을 위한 양방향 목록이며 대기열 및 스택에 적합합니다
from collections import deque q=deque(['a','b','c']) q.append('x') q.appendleft('y') print(q)
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)
updateincrease
#🎜 🎜#
c=Counter('gallahad') print(c['a']) print(c['z']) >>3 >>0
#🎜🎜 #
c=Counter('gallahad') c.update('chengzheng') print(c['e']) >>2 d=Counter('holloword') c.update(d) print(c['l']) >>4
c=Counter('gallahad') c.subtract('g') print(c['g']) >>0 d=Counter('all') c.subtract(d) print(c['l']) >>0
반복자를 사용해야 합니다. 요소가 반복되는 횟수는 해당 요소가 반복자에 포함되는 횟수입니다. 요소는 정해진 순서 없이 배열되며, 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})
상위(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)
사전(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和负值
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)])
예:
즉: {'k1': 66보다 큼, 'k2': 66보다 작음}
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!