나는 coursera - Python에서 과제를 해결하려고합니다.Python : coursera 할당 - 사전 챕터
mbox-short.txt를 통해 읽고 가장 많은 수의 메일 메시지를 보낸 사람을 알아내는 프로그램을 작성하십시오. 이 프로그램은 '보낸 사람'행을 찾고 메일을 보낸 사람으로 그 행의 두 번째 단어를 사용합니다. 이 프로그램은 보낸 사람의 메일 주소를 파일에 나타나는 횟수의 수로 매핑하는 Python 사전을 만듭니다. 사전이 생성 된 후, 프로그램은 최대 루프를 사용하여 사전을 통해 가장 많은 커미터를 찾습니다.
name = raw_input("Enter file:")
if len(name) < 1 : name = "mbox-short.txt"
handle = open(name)
lst = list()
for line in handle:
line = line.strip()
if line.startswith("From"):
words = line.split()
email = words[1]
lst.append(email)
dct = dict()
for email in lst:
dct[email] = dct.get(email,0)+1
bigcount = None
email_address = None
for key,value in dct.items():
if bigcount is None or value > bigcount:
bigcount = value
email_address = key
print email_address, bigcount
내 코드가 실행되지만 원하는 출력이되어야합니다 : [email protected] 10
사람이이 문제를 해결 했 : [email protected] 5,하지만 난 어떻게 든 얻을 출력은 "배"? 내가 놓친 것을 알려주시겠습니까? 정말 고마워!
다른 이메일의 출력물을 인쇄하고 해당 이메일에 고유하지 않은지 확인하십시오. –
모든 것이 정상적으로 보입니다. 문제를보기 위해 if를 입력하는 줄을 인쇄하고 예제 파일을 보여줄 수 있습니다. – polku
'for email in lst :'duplicated, 어쩌면 두 줄 이상의 동일한 텍스트가있을 수 있습니다. dict에서 처리하기 전에 입력 텍스트에서 고유 한 값을 가져옵니다. – dsgdfg