Python Collections

글 목록
  • defaultdict
  • 사전 에서 키 를 끼 워 넣 기
  • OrderedDict
  • counter
  • deque
  • nametuple

  • defaultdict
    키 가 존재 하 는 지 확인 할 필요 가 없습니다.
    from collections import defaultdict
    
    demo = (('a',1),('b',2),('c',3),('d',4))
    print(dict(demo))
    
    default_demo = defaultdict(list)    #   values list  ,  key        
    for k, v in demo:
        default_demo[k].append(v)
    print(default_demo)
    

    사전 에서 키 를 끼 워 넣 기
    from collections import defaultdict
    tree = lambda : defaultdict(tree)
    demo_dict = tree()
    demo_dict['a']['b']['c'] = 'ok'
    import json
    print(json.dumps(demo_dict))
    # {"a": {"b": {"c": "ok"}}}
    

    OrderedDict
    dict 를 사용 할 때 키 는 무질서 합 니 다.dict 를 교체 할 때 키 의 순 서 를 정할 수 없습니다.
    from collections import OrderedDict
    d = dict([('a',1),('w',2),('c',3)])	# key  
    print(d)
    od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])	# key  
    print(od)
    
    od = OrderedDict()	#       key     
    od['z'] = 1
    od['y'] = 2
    od['x'] = 3
    print(od.keys())
    

    counter
    Counter 는 어떤 데 이 터 를 계산 하 는 데 도움 을 주 는 카운터 입 니 다.카운터 도 실제로 dict 의 하나 와 같다.
    from collections import Counter
    demo = (('a',1),('b',2),('c',3),('d',4),('d',6))
    result = Counter(k for k, v in demo)
    print(result)
    # Counter({'d': 2, 'a': 1, 'b': 1, 'c': 1})
    
    c = Counter()
    for i in 'dmeosscc':
    	c[i] += 1
    print(c)
    
    

    deque
    양 끝 대기 열 을 제공 합 니 다. 처음부터 끝까지 요 소 를 추가 하거나 삭제 할 수 있 습 니 다.
  • 목록 의 길 이 를 설정 합 니 다
  • 정도 추가 및 삭제 가능
  • from collections import deque
    
    d = deque(maxlen=10)    #    10,         
    d.append('1')
    d.append('2')
    d.append('3')
    d.extend(['4','5','6'])
    d.extendleft('0')
    print(len(d), d)
    print(d.popleft())
    print(d.pop())
    print(d)
    
    # 7 deque(['0', '1', '2', '3', '4', '5', '6'], maxlen=10)
    # 0
    # 6
    # deque(['1', '2', '3', '4', '5'], maxlen=10)
    

    nametuple
    원본 그룹 (nametuple) 을 명명 하여 원본 그룹 을 간단 한 용기 로 만 듭 니 다. 색인 으로 데 이 터 를 방문 하지 않 아 도 사전 처럼 접근 할 수 있 습 니 다 nametuple. 그러나 nametuple 는 변 하지 않 습 니 다.
    from collections import namedtuple
    
    Apple = namedtuple('Apple','x y')
    a = Apple(1,2)
    print(a.x)
    print(a.y)
    # 1
    # 2
    

    좋은 웹페이지 즐겨찾기