def getDict(file_name):
result = {}
keys = []
values = []
with open(file_name,'r') as f:
stringfile = f.read()
listfile = stringfile.split('\n')
for i in listfile:
k = i[-4:]
v = i[:-5]
if k not in keys:
keys.append(k) #listfile 안에서 중복되지 않게 연도를 뽑아 keys 내로 더해줌
for i in keys: #중복되지 않는 각 연도 i에 대해서,
values.clear()
for j in listfile: #listfile의 각 구성원소에 대해
if (j[-4:])==(i): #listfile 구성원소의 연도가 i와 같으면
values.append(j[:-5]) #영화제목을 values 리스트에 집어넣는다.
result[i] = values #영화제목 집어넣은 values list는 result라는 dictionary의 key : i 에 대해 value가 된다.
return result
print(getDict('data/Movie.txt'))
뒤에 더 있긴 한데 함수 def 잘됐나 보려고 프린트한거고..
data.Movie.txt 파일은
영화제목,연도4자리 영화제목,연도4자리 영화제목,연도4자리 이렇게 쭉 나열되었고, 연도는 중복되어있음.
csv 파일 바꿔놓은거 같다는 말이 나와서 개행문자로 짤랏더니 잘 짤렸음
근데 저걸 출력하면
연도, 즉 key값들은 제대로 들어갔는데, value값이 어떤 한 영화로만 특정됨. 그래서 출력값이
{'2010' : ['Fatty Joins the Force'], '1999' : ['Fatty Joins the Force'], '2013' : ['Fatty Joins the Force'], '1965' : ['Fatty Joins the Force']....}
이딴식으로나옴..
value값 넣어줄때 뭔가 잘못된거같은데 뭔질모르겠다.. 도움앙망
예상댓글)5천원
5천원에 해줄게
해결 완료 - dc App
파이썬 생성을 모르겠네 values.clear 치우고 values 새로 만드는거 해봐
위에 있던 values = [] 들고와서 values.clear 지우고 그자리에 집어넣었더니 결과자체는 제대로 나오는데 답은 아니라고함 ㅋㅋ 암튼 실마리 준거 ㄳㄳ
아 병신짓해서 오답이라떴었네 해결했음 ㄳㄳ 왜 그런지 원리는 잘 모르겠는데 일단 됐으니까..
생명주기 ㄱㄱ