好的,所以我有一个代码,我需要打印一个5x5正方形的游戏板。所有的方块都在squareList
,这是一个列表(哦,你不说)。方块基于具有变量number
的对象,该变量是我想要打印的值。我怎么能这样做?
答案 0 :(得分:2)
python切片/数组运算符支持可选的step
作为第三个值。 squareList[start:end:step]:
for o in squareList[::5]:
print(o.number)
使用5作为步骤值来获取列表中的每个第五个条目。
答案 1 :(得分:0)
为什么不为方块中的每一行创建列表,然后将这些行放入列表?
squareList = [rowList1, rowList2, rowList3, rowlist4, rowList5]
这样,您可以在循环遍历行时操作列。
for row in SquareList:
doSomething(row[4])
您还可以使用列表推导来提取列。
colList1 = [row[0] for row in squareList]
答案 2 :(得分: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()
(我假设是Python 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()
另见:
What is the most "pythonic" way to iterate over a list in chunks?