저는 배우와 영화의 이름이 들어있는 파일을 가져와 각 영화에있는 액터의 해시를 구성하는 스크립트가 있습니다. 아래는 현재 코드이며, 사전 크기를 10으로 제한하고 싶습니다. ie. 각 영화의 처음 10 명의 배우 만 사전에 추가 할 수 있습니다. 내가 루프를 시도하고 휴식과 내 방법이 작동하지 않았다.파이썬 사전의 값을 제한합니다.
업데이트, 나는 @의 jonrsharpe의 제안을 통합했지만, 그것은 단지 10 각 영화 배우의 목록을 제한하지 않고 내 사전을 조각 :
movietoactorfile = open('mov2act.pickle', 'w')
movietoactor = {}
for line in gzip.open(moviefile_name, 'rb').readlines():
(actor, movie, rank) = line.rstrip('\r\n\s').split('\t')
if movie not in movietoactor:
movietoactor[movie] = []
movietoactor[movie].append(actor)
for movie in movietoactor:
s = "\t".join(movietoactor[movie][:10])
pickle.dump(movietoactor, movietoactorfile)
Oringinal 샘플 출력 :
S'Irma la Douce (1963)'
p1
S"\tDeauville, Sheryl\tEarl, Jane\tEarl, Ruth\tHoliday, Hope\tMacLaine, Shirley\tSatana, Tura\tShawlee, Joan\tWhitney, Grace Lee\tWoods, Susan (I)\tYoung, Harriette\tAlvin, John (I)\tBarrier, Edgar\tBeck, Billy (I)\tBernardi, Herschel\tBixby, Bill\tBrown, James (II)\tCaan, James\tDiamond, Don\tDubov, Paul\tJacobi, Lou\tJourdan, Louis (I)\tKrugman, Lou\tLemmon, Jack (I)\tLerner, Diki\tMcNear, Howard\tMoustache\tO'Dell, Doye\tOsmond, Cliff\tPalma, Joe\tPeel, Richard\tYarnell, Bruce"
p2
sS'American Buffalo (1996)'
p3
S'\tFranz, Dennis (I)\tHoffman, Dustin\tNelson, Sean (I)'
을 위의 코드에서
전류 출력 :
S'Irma la Douce (1963)'
p1
(lp2
S'Deauville, Sheryl'
p3
aS'Earl, Jane'
p4
aS'Earl, Ruth'
p5
aS'Holiday, Hope'
p6
aS'MacLaine, Shirley'
p7
aS'Satana, Tura'
p8
aS'Shawlee, Joan'
p9
aS'Whitney, Grace Lee'
p10
aS'Woods, Susan (I)'
p11
aS'Young, Harriette'
p12
aS'Alvin, John (I)'
p13
aS'Barrier, Edgar'
p14
aS'Beck, Billy (I)'
p15
aS'Bernardi, Herschel'
p16
aS'Bixby, Bill'
p17
aS'Brown, James (II)'
p18
aS'Caan, James'
p19
aS'Diamond, Don'
p20
aS'Dubov, Paul'
p21
aS'Jacobi, Lou'
p22
aS'Jourdan, Louis (I)'
p23
aS'Krugman, Lou'
p24
aS'Lemmon, Jack (I)'
p25
aS'Lerner, Diki'
p26
aS'McNear, Howard'
p27
aS'Moustache'
p28
aS"O'Dell, Doye"
p29
aS'Osmond, Cliff'
p30
aS'Palma, Joe'
p31
aS'Peel, Richard'
p32
aS'Yarnell, Bruce'
p33
asS'American Buffalo (1996)'
p34
(lp35
S'Franz, Dennis (I)'
p36
aS'Hoffman, Dustin'
목적 outpu t이 좋아한다 :
: 라인의 I = 1 개 외부를 배치 할 제안에 관해서는S'Irma la Douce (1963)'
p1
S"\tDeauville, Sheryl\tEarl, Jane\tEarl, Ruth\tHoliday, Hope\tMacLaine, Shirley\tSatana, Tura\tShawlee, Joan\tWhitney, Grace Lee\tWoods, Susan (I)\tYoung, Harriette"
p2
sS'American Buffalo (1996)'
p3
S'\tFranz, Dennis (I)\tHoffman, Dustin\tNelson, Sean (I)'
, 즉 내가 시도 매우 첫번째 편집 여기 내 질문을 게시하기 전에 문제가 해결되지 않았다이었다
movietoactorfile = open('mov2act.pickle', 'w')
movietoactor = {}
i = 1
for line in gzip.open(moviefile_name, 'rb').readlines():
(actor, movie, rank) = line.rstrip('\r\n\s').split('\t')
if movie not in movietoactor:
movietoactor[movie] = ''
movietoactor[movie] += '\t%s' % actor
i += 1
if i > 10:
break
pickle.dump(movietoactor, movietoactorfile)
출력 :
S'\tactor'
p6
sS'Queen of the Damned (2002)'
p7
S'\tAaliyah'
p8
sS'Kauas pilvet karkaavat (1996)'
p9
S'\tAaltonen, Minna'
p10
sS'Class Act (1992)'
p11
S'\tAalda, Mariann'
p12
sS'Twenty Bucks (1993)'
p13
S'\tAabel, Per (II)'
p14
sS'South Pacific (1958)'
p15
S'\tAadland, Beverly'
p16
sS'Tomorrow Never Dies (1997)'
p17
S'\tAaltonen, Minna'
p18
sS'Romeo Must Die (2000)'
p19
S'\tAaliyah'
p20
s.
, 당신이 시도하지 말라 한도.제한하려는 버전을 알려주고 "작동하지 않음"으로 무엇을 의미하는지 말할 수 있습니까? – Djizeus
10 개로 제한하려면 왜 각 영화에 대한 목록을 저장하지 않고 목록의 길이를 테스트해야합니까? – EdChum
@EdChum 루프의 각 반복마다 1로 재설정되고 있다고 생각하지 않습니까? –