파이썬 질문입니다.
조회수 2006회
자연수 n을 입력받은 후, n명의 이름을 입력받는다. 각 이름이 입력된 횟수를 딕셔너리 형태로 변환하여 출력하시오.
[입출력 예시1]
3
KIM
KIM
KIM
{'KIM': 3}
[입출력 예시2]
5
LEE
LEE
LEE
KIM
PARK
{'LEE': 3, 'KIM': 1, 'PARK': 1}
n=int(input())
user_info={}
c=0
for i in range(n):
key=input()
if key in user_info.keys():
if c>=2:
c += 1
user_info[key]=c
continue
c=1
c += 1
user_info[key]=c
else:
c=0
user_info[key]=c+1
print(user_info)
어디가 잘못됐을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
4 답변
-
좀 불필요하게 복잡하게 한 부분이 있어서, 더 간단하게 만들 수는 있지만, 문제가 원하는 결과대로 동작되는 듯 합니다. 어떻게 잘못된 결과가 나온다는 건가요?
-
- 혹시
NameError
가 나고 있다면 → https://blog.colab.kr/27 - 혹시
user_info
에 추가가 안되고 있다면 → https://stackoverflow.com/a/42315099
- 혹시
-
이게 훨씬 간단할거에요..
n=int(input()) user_info={} for i in range(n): key=input() if key in user_info.keys(): user_info[key] = user_info[key] + 1; else: user_info[key]=1; print(user_info)
그리고 앞으로는 어데서 어떤 오유가 나온다하고 밝혀주시면 더 좋을것 같아요...
-
(•́ ✖ •̀)
알 수 없는 사용자
-
-
기본 모듈에 Counter 가 제공됩니다.
In [45]: data = [input() for _ in range(int(input()))] 5 aaa bbb aaa ccc bbb In [46]: data Out[46]: ['aaa', 'bbb', 'aaa', 'ccc', 'bbb'] In [47]: from collections import Counter In [48]: dict(Counter(data)) Out[48]: {'aaa': 2, 'bbb': 2, 'ccc': 1}
- Counter 를 사용하지 않을때
In [67]: data = [input() for _ in range(int(input()))] 5 aaa bbb aaa ccc bbb In [68]: D = {} In [69]: for key in data: ...: D[key] = D.get(key, 0) + 1 ...: In [70]: D Out[70]: {'aaa': 2, 'bbb': 2, 'ccc': 1}
댓글 입력