2014-08-27 2 views
-3

좋습니다. 그래서 5x5 사각형이있는 게임 보드를 인쇄해야하는 코드가 있습니다. 모든 사각형은 squareList에 있으며, 이것은 목록입니다 (아, 말하지 마세요). 사각형은 변수 값이 number 인 개체를 기반으로합니다.이 값은 인쇄 할 값입니다. 어떻게해야합니까?목록에있는 다섯 번째 오브젝트마다 무언가를하십시오.

편집 : 내가 이것을하기를 원한 이유는 다섯 줄마다 새로운 줄을 시작하여 값이있는 보드가 아닌 라인을 얻고 싶기 때문입니다.

+1

'[4 : 5] .. 다섯 번째 ..' – falsetru

+0

으로 뭔가를 할 또는 itertools.islice (squareList, 4, None, 5)에서 다섯째 : ... ' – falsetru

+4

질문 제목과 본문 사이의 관계가 표시되지 않습니다. – interjay

답변

2

python 슬라이스/배열 연산자는 선택 사항 인 step을 세 번째 값으로 지원합니다. 단계 값으로 squareList[start:end:step]:

for o in squareList[::5]: 
    print(o.number) 

사용 5는리스트에있는 모든 다섯 번째 항목을 얻을 수 있습니다.

0

사각형의 각 행에 대한 목록을 만들어 목록에 넣는 것이 어떻습니까?

squareList = [rowList1, rowList2, rowList3, rowlist4, rowList5] 

이렇게하면 행을 반복하면서 열을 조작 할 수 있습니다.

for row in SquareList: 
    doSomething(row[4]) 

목록 이해를 사용하여 열을 추출 할 수도 있습니다.

colList1 = [row[0] for row in squareList] 
0

나는 CCKx에서 제안한 것처럼 데이터를위한 다른보다 편리한 구조를 고려할 수도 있습니다.

squareList = [0,0,1,0,0, 
       1,2,0,0,1, 
       0,0,0,1,2, 
       2,2,0,0,0, 
       1,0,0,0,1] 

이 그럼 당신은이 작업을 수행 할 수 있습니다 :

은 다음 두 가지 방법 가정

있습니다

for index, value in enumerate(squareList): 
    print(value, end='') 
    if (index % 5) == 4: 
     print() 

(I 파이썬 3 있으리라 믿고있어)

그 말 그대로 것 당신이 요구 한 방식대로 요청하십시오. index은 목록의 각 요소를 통해 계산되며, % or "modulo" operator은 5로 나눌 때 나머지를 가져 오므로 루프를 5 번 수행 할 때마다 몇 가지 조치를 취할 수 있습니다.

또는 당신이 사용할 수있는 슬라이스 : 또한

for row in range(5): 
    for cell in squareList[row*5:row*5+5]: 
     print(cell, end='') 
    print() 

참조 :

squareList에서 다섯 번째에 대한

What is the most "pythonic" way to iterate over a list in chunks?

관련 문제