파이썬 카운터

시스템 설계 면접 질문 너무 개방적이어서 올바른 준비 방법을 알기가 너무 어렵습니다. 이제 구매 후 Amazon, Microsoft 및 Adobe의 디자인 라운드를 해독할 수 있습니다. 이 책은. 매일 수정 하나 디자인 질문 그리고 나는 당신이 디자인 라운드를 깨뜨릴 수 있다고 약속합니다.

파이썬 카운터란 무엇입니까?

Python 카운터는 컬렉션 기준 치수. 컨테이너에 있는 각 요소의 수를 보유합니다.

컨테이너는 차례로 개체를 보유하는 개체로 정의할 수 있습니다. 개체를 반복하여 개체에 액세스할 수 있습니다. List, Tuple 및 Dictionary는 내장 컨테이너의 예입니다. 카운터는 내장 컨테이너의 대안입니다.

또한 파이썬 사전 파이썬 카운터의 슈퍼클래스입니다. 따라서 사전과 마찬가지로 카운터도 정렬되지 않은 컬렉션입니다. 카운터에서 요소와 해당 개수는 사전 형식의 키-값 쌍으로 저장됩니다. 다른 언어의 다중 집합과 유사합니다.

Python 카운터 초기화:

다음과 같이 세 가지 방법으로 카운터 구성을 호출할 수 있습니다.

  • 목록, 튜플, 문자열 등과 같은 항목 시퀀스,
  • 키와 각각의 카운트 값을 포함하는 사전.
  • 문자열 이름을 해당 카운트 값에 매핑하는 키워드 인수.
from collections import Counter

#sequence of items
print(Counter(('A','1','2','3','A','A','3','A')))

#dictionary containing keys and their respective counts
print(Counter({'A':1,'B':3,'C':7}))

#keyword arguments mapping keys to count values
print(Counter(A=1,B=3,C=7))

출력은 다음과 같습니다.

Counter({'A': 4, '3': 2, '1': 1, '2': 1})
Counter({'C': 7, 'B': 3, 'A': 1})
Counter({'C': 7, 'B': 3, 'A': 1})

Python 카운터에서 요소 삭제:

del 키워드를 사용하면 카운터의 모든 요소를 ​​요소화할 수 있습니다. 주어진 요소가 없어도 오류가 발생하지 않습니다.

from collections import Counter

counter=Counter()
counter.update([1,3,2,1,4,3,2,2,3])
print(counter)
del counter[4]
print(counter)
Counter({3: 3, 2: 3, 1: 2, 4: 1})
Counter({3: 3, 2: 3, 1: 2})

Python 카운터에 대한 작업:

파이썬 카운터에서 덧셈, 뺄셈, 교집합, 합집합과 같은 산술 연산을 수행할 수 있습니다.

  • 덧셈과 뺄셈만 반환 양수.
  • Intersection은 최소값으로 두 카운터에 있는 양수 요소를 반환합니다.
  • Union은 두 카운터에 있는 양수 요소를 다음과 함께 반환합니다. 최대 값.
from collections import Counter

counter=Counter()
counter1=Counter([1,3,2,1,4,3,2,2,3])
counter2=Counter((1,3,4,2,5))

#Addition
print(counter1+counter2)
#Subtraction
print(counter1-counter2)
#Intersection
print(counter1&counter2)
#union
print(counter1|counter2)
Counter({3: 4, 2: 4, 1: 3, 4: 2, 5: 1})
Counter({3: 2, 2: 2, 1: 1})
Counter({1: 1, 3: 1, 2: 1, 4: 1})
Counter({3: 3, 2: 3, 1: 2, 4: 1, 5: 1})

시퀀스의 고유한 요소 가져오기:

counter를 사용할 수 있는 또 다른 방법은 컬렉션의 고유한 요소 수를 얻는 것입니다.

from collections import Counter

sequence=[1,2,4,2,3,1,2,3,3,2,4,1]
print(Counter(sequence))
Counter({2: 4, 1: 3, 3: 3, 4: 2})

Python 카운터에서 일반적으로 사용되는 방법:

집단():

elements()는 Counter 클래스의 함수입니다. 반환 유형은 itertools이므로 카운터에서 알려진 모든 요소를 ​​포함하는 반복자를 반환합니다.

<class 'itertools.chain'>

매개 변수 :

어떤 매개변수도 허용하지 않습니다.

오류 및 예외:

  • 반복자를 반환하기 때문에 직접 인쇄하면 가비지 값을 인쇄합니다.
counter1=Counter(A=4,B=5,C=12)

print(counter1.elements())
<itertools.chain object at 0x02DAA370>
  • elements()는 양수 값을 가진 요소만 반환하므로 XNUMX인 요소는 무시하고 음수.
from collections import Counter

sequence=Counter(a=2,d=-1,b=0,c=3)

for i in sequence.elements():
    print("% s : % s" % (i, sequence[i]))
a : 2
a : 2
c : 3
c : 3
c : 3

덜다():

전달된 카운터에 있는 카운터에서 요소를 추론합니다. elements()와 달리 음수뿐만 아니라 값을 계산하는 요소를 반환합니다.

from collections import Counter 

counter1=Counter(A=4,B=5,C=12) 
counter2=Counter(A=5,B=5,C=3) 
counter1.subtract(counter2) 

print(counter1)
Counter({'C': 9, 'B': 0, 'A': -1})

업데이트():

빈 카운터를 만들거나 update() 메서드를 사용하여 기존 카운터를 업데이트할 수 있습니다.

from collections import Counter 

#Initializing empty Counter 
counter=Counter() 
counter.update([1,3,2,1,4,3,2,2,3]) 
print(counter) 

counter.update((1,3,4,2)) 
print(counter)
Counter({3: 3, 2: 3, 1: 2, 4: 1}) 
Counter({3: 4, 2: 4, 1: 3, 4: 2})

카운터를 업데이트하면 기존 데이터가 대체되지 않고 증가합니다.

 

균열 시스템 설계 인터뷰
Translate »