2016-12-06 1 views
-3

여러 줄이있는 파일에서 사전 항목을 만들고 싶습니다. 줄 번호 만 있으면 값이되지만, 그렇지 않으면 (대부분 알파) 다음 번호의 키가됩니다 다른 이름이 파일에 나타날 때까지 코드를 "다시 시작"하는 방법을 알아낼 수 없었지만 다음 이름에 도달하면 새 키를 만들어 계속합니다.파이썬에서 사전에 파일에 점수가 있습니까?

파일은 다음과 같이 보입니다 :

Gigi: 
0 
2 
3 
2 
Bella: 
1 
6 
2 
9 

을 그리고는 다음과 같습니다 사전 싶은 :

{Gigi: [0,2,3,2], Bella: [1,6,2,9]} 
+0

시도해 보았습니까? – skrrgwasme

+0

지금까지 가지고있는 것을 보여줄 수 있습니까? StackOverflow는 사람들이 프로그램을 작성하는 것이 아니라 프로그램 내부의 문제를 해결하는 데 도움이됩니다. – Qwerty

답변

2
my_dict = {} 
current_key = None 
for line in open('/path/to/file', 'r'): 
    if not line.strip().isdigit(): 
     current_key = line.strip() 
     my_dict[current_key] = [] 
    else: 
     my_dict[current_key].append(int(line.strip())) 

먼저 키를 추가 할 수 빈 사전 설정을 그리고 그 값에 다음 현재의 키를 추적하여 다음에 비 숫자가 그것을 대체 할 때까지 변수를 유지하고 마지막으로 파일의 라인을 반복하고 숫자가 아닌 경우 현재 키로 설정되고 t에 추가됩니다 사전을 빈 목록으로 사용하고, 숫자 인 경우 정수로 변환되어 현재 키의 사전 항목에 추가됩니다.

편집 : 숫자가 처음 나타나는 경우 첫 번째 줄이 키가 될 것으로 예상하므로 사전에 값을 추가 할 해당 키가 없습니다.

관련 문제