2009-11-06 10 views
0

다음 코드를 어떻게 고칠 수 있습니까?파이썬 조각에서의 계수

mod 5 == 1 인 요소 조각을 가져오고 싶습니다.

data = "8|9|8|9|8|9|8|9|9|8|9|8|9|8|9|8" 
arra = map(int,data.split("|")) 

sums += [sum(arra[i % 5==1:(i + 4) % 5==1])   // Problem here 
     for i in range(0, len(arra), 4)] 
+0

스타일 상으로는 문자열에서 데이터를 변환하는 이유가 있습니까? arra = 8,9,8,9,8,9,8,9,9,8,9,8,9,8,9,8'? 또한'arra'는 변수 이름의 이상한 선택입니다. 'array'는 예약어가 아니며 파이썬에서 내장되어 있지도 않습니다 (생각하는 구조는'list' 또는'tuple'라고 불립니다). – jcdyer

답변

6
sums += sum(arra[1::5]) 

그리고 array을 철자.

역 추적 (가장 최근 통화 최종) : 당신이 + = 사용하는 경우 ;-)

+0

나는 너가 이것을 할 수 있었다는 것을 몰랐다. 굉장해! –

+0

추가 문서는 "조각"이라는 용어로 볼 수 있습니다. – jcdyer

0

그것은

sums = sum(arra[1::5]) 

있어, 파이썬은 이름 합계가 alreadey accesible입니다 spects 파일 "", 줄 1 , in 합계 + = 합계 (arra [1 :: 5]) NameError : 이름 'sums'이 정의되지 않았습니다.