728x90
반응형
입력횟수 그리고 나라이름과 나라국민 이름을 입력받은후 나라이름을 key 국민리름을 value로해서 defaultdict를 만들어주세요.
카운터도 들어가게 부탁드립니다
예를 들어
4
Russia Alex
Korea minsung
Australia Billy
Korea jimin
를 입력시
중복 알파벳이 가장 많은 나라: Australia
각 나라 국민중 이름이 가장 긴 사람 :minsung 7
'''
4
Russia Alex
Korea minsung
Australia Billy
Korea jimin
'''
defaultdict = {} # 딕셔너리 지정
cnt = int(input()) # 입력수 입력 받기, 문자열을 정수로 변환
max_len_country = '' # 가장 긴 나라명 저장 변수
max_len_name = '' # 가장 긴 이름 저장 변수
for i in range(cnt): # 입력 수 만큼 반복
country, name = input().split() # 나라명, 이름 입력 받고, 공백으로 분리해서 변수에 저장
defaultdict[country] = name # 나라이름을 key로 하고 이름을 value로 해서 딕셔너리에 저장
if len(max_len_country) < len(country): # 입력 받은 나라명의 길이가 max나라명보다 길면 max나라명에 저장
max_len_country = country
if len(max_len_name) < len(name): # 입력 받은 이름의 길이가 max이름보다 길면 max이름에 저장
max_len_name = name
print('중복 알파벳이 가장 많은 나라:',max_len_country)
print('각 나라 국민중 이름이 가장 긴 사람 :',max_len_name,len(max_len_name))
문제 요청대로 하면 위 코드와 같은데, 이렇게 하면 defaultdict가 다음과 같이 됩니다.
Korea가 key가 중복되어 2번쨰 korea가 덮어쓰게 됩니다.
{'Russia': 'Alex', 'Korea': 'jimin', 'Australia': 'Billy'}
모든 데이터가 딕셔너리에 저장되도록 하려면
'''
4
Russia Alex
Korea minsung
Australia Billy
Korea jimin
'''
defaultdict = {}
cnt = int(input())
max_len_country = ''
max_len_name = ''
for i in range(cnt):
country, name = input().split()
defaultdict[name] = country # 이름을 key로 하고 나라명의 value해서 딕셔너리에 저장
if len(max_len_country) < len(country):
max_len_country = country
if len(max_len_name) < len(name):
max_len_name = name
print('중복 알파벳이 가장 많은 나라:',max_len_country)
print('각 나라 국민중 이름이 가장 긴 사람 :',max_len_name,len(max_len_name))
그러면defaultdict에 모든 데이터가 저장됩니다.
{'Alex': 'Russia', 'minsung': 'Korea', 'Billy': 'Australia', 'jimin': 'Korea'}
728x90
반응형
'프로그램' 카테고리의 다른 글
[파이썬] 문제 : tkinter 입력 1, 2, 3 으로 수 입력 받아 더하기 (0) | 2023.11.30 |
---|---|
[파이썬] 문제 : 파일을 읽어 2번째 줄 데이터로 Bar Chart 그리기 (0) | 2023.11.30 |
[파이썬] 문제 : 10명의 학생 점수 입력 받아서 합계,평균 계산 (0) | 2023.11.29 |
[파이썬] 문제 : 학생 정보를 튜플과 리스트로 만들기 (0) | 2023.11.29 |
[파이썬] 문제 : 내신 평균 계산하기 (0) | 2023.11.27 |
댓글