python고수님들께 질문드립니다
조회수 1039회
**입력**
How are you How is it going
이렇게 입력시
**출력**
How : 2
are : 1
you : 1
is : 1
it : 1
going : 1
이런식으로 나오도록 하려고 프로그램을 짜려는데
dic = {}
a=input().split()
for i in range(len(a)):
word=a[i]
count=a.count(word)
dic[word]=count
print(dic)
와 같이 써서 자꾸만 {key:~, key:~,...}처럼 나오게 되는데 위의 예시처럼 List와 Dictionary를 사용해 나오게 하려면 어떻게 프로그램을 짜야 하고 또한 a.count(word)를 쓰지 않고는 단어의 개수를 어떻게 셀 수 있는지 질문 드려봅니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
많이 바꿨지만 생각해보니까 dic는 필요없었네요! 그 대신 리스트를 추가하고 요소를 넣으면서 중복방지를 했습니다.
a=input().split() arr = [] for i in range(len(a)): word=a[i] count=a.count(word) if word in arr: continue else: print(word, end=' : ') print(count) arr.append(word)
------------------------------------------------------------------------------------------------------------------------------------------+
제가 궁금한게 생겼는데 조건문의 if word in arr은 "리스트안에 이미 요소가 있냐?"라는 조건입니다.
리스트안에 이미 요소가있으면 중복방지를 위하여 continue했는데
리스트안에 요소가 없으면 출력을 하고싶습니다.
if word in arr의 조건을 반대로하려면 어떻게하나요?- if word not in arr 로 해보세요 HIAOAIH 2021.4.7 10:39
- 답변 감사드립니다!! 알 수 없는 사용자 2021.4.7 14:18
- not를 거기에넣으면되는거였네요! 감사합니다. noah0508 2021.4.8 07:32
-
from collections import Counter dic = Counter(input().split()) for i in dic: print(i+" : "+str(dic.get(i)))
이렇게 하면 원하시는 결과는 나옵니다. counter는 썼지만 count는 안썼네요 ㅎㅎ..
댓글 입력