2017-01-25 5 views
-1

에 텍스트 파일에서 목록 만들기 : 나는 별도의 목록에있는 각 주제에 대한 모든 names surnames을 추가 할 수있을 것인지 묻고 싶다나는 다음과 같은 내용으로 텍스트 파일이 파이썬

Matematics 
Name1 Surname1 
Name2 Surname2 
Name3 Surname3 
History 
Name1 Surname1 
Name2 Surname2 
Name4 Surname4 
Name5 Surname5 

합니다.

나는 name surnamesubject 문자열과 구별 할 수 있습니다 : if string.count(' ') > 0: 또는 if string.count(' ') == 0:; 중간에있는 경우는 각 subject의 시작 부분에 동일한 기호 (예 : >)를 추가 할 수 있습니다.

그러나 각 주제에 대해 names surnames의 다른 목록을 만드는 루프를 생성하는 방법에 대해 혼란스러워합니다.

+3

당신이뿐만 아니라 귀하의 게시물에 링크에서 관련 정보를 게시 할 수 있을까요? 또한 문제를 해결하기 위해 이미 작성한 코드를 포함하십시오. –

+3

다운로드 할 파일에 대한 링크를 붙여 넣지 마십시오. – cdarke

답변

0

은 李의 답을 宏杰에 추가하려면, 아마 당신은 모든 저장할 수 다음과 같은 dict에 카테고리 목록 :

{ 
    Mathematics: ['Name1 Surname1','Name2 Surname2', 'Name3 Surname3'], 
    History: ['Name4 Surname4','Name5 Surname5', 'Name6 Surname6'], 
} 

사용 :

import csv 
exampleDict = {} 
currentCategory = '' 
with open('file.txt', newline='') as f: 
    for row in reader: 
     #if the row is a category (mathematics/history) 
     if ' ' not in row: 
      currentCategory = row 
      exampleDict[currentCategory] = [] 
     #if the row is a 'Name Surname' 
     else: 
      exampleDict[currentCategory].append(row) 
+0

대단히 고마워요! –

0
import csv 
with open('file.txt', newline='') as f: 
    reader = csv.reader(f, delimiter=' ') 
    for row in reader: 
     if len(row) == 2: 
      print(row) 

아웃 :

['Name1', 'Surname1'] 
['Name2', 'Surname2'] 
['Name3', 'Surname3'] 
['Name1', 'Surname1'] 
['Name2', 'Surname2'] 
['Name4', 'Surname4'] 
['Name5', 'Surname5'] 

또는 지능형리스트 :

lists = [row for row in reader if len(row)==2] 

아웃 :

[['Name1', 'Surname1'], 
['Name2', 'Surname2'], 
['Name3', 'Surname3'], 
['Name1', 'Surname1'], 
['Name2', 'Surname2'], 
['Name4', 'Surname4'], 
['Name5', 'Surname5']] 
+0

감사합니다! 그걸 시도해 볼게. –

+0

@ 지오바니 스피 리토 (Giovanni Spirito) 코드가 작동하면 제 대답을 받아주세요. –

관련 문제