Python 为列表中的每五个对象执行一项操作
好的,我有一个代码,我需要打印一个有5x5个方块的游戏板。所有的方块都在squareList中,这是一个列表哦,你不会说的。正方形基于一个对象,该对象具有一个可变的数字,该数字是我要打印的值。我该怎么做Python 为列表中的每五个对象执行一项操作,python,list,object,for-loop,Python,List,Object,For Loop,好的,我有一个代码,我需要打印一个有5x5个方块的游戏板。所有的方块都在squareList中,这是一个列表哦,你不会说的。正方形基于一个对象,该对象具有一个可变的数字,该数字是我要打印的值。我该怎么做 编辑:之所以要这样做,是因为我想每隔五个正方形从一条新行开始,这样我就可以得到一块板,而不是一条带值的线。python切片/数组操作符支持一个可选步骤作为第三个值。squareList[开始:结束:步骤]: 使用5作为步长值,以获得列表中的每五个条目。为什么不为正方形中的每一行创建列表,然后将这
编辑:之所以要这样做,是因为我想每隔五个正方形从一条新行开始,这样我就可以得到一块板,而不是一条带值的线。python切片/数组操作符支持一个可选步骤作为第三个值。squareList[开始:结束:步骤]:
使用5作为步长值,以获得列表中的每五个条目。为什么不为正方形中的每一行创建列表,然后将这些行放入列表中
squareList = [rowList1, rowList2, rowList3, rowlist4, rowList5]
通过这种方式,可以在循环行时操纵列
for row in SquareList:
doSomething(row[4])
您还可以使用列表提取列
colList1 = [row[0] for row in squareList]
我同意你可能想考虑其他更方便的数据结构,如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
这会按照你的要求去做你所要求的。索引将通过列表中的每个元素进行计数,当您除以5时,将得到余数,从而允许您在循环中每5次执行一次操作
也可以使用切片:
for row in range(5):
for cell in squareList[row*5:row*5+5]:
print(cell, end='')
print()
另见:
对于平方列表中的第五个[4::5]:。。对itertools.islicesquareList中的fifth..或fifth执行操作,4,None,5:…我看不出问题标题与其正文之间的关系。@falsetru注释不用于回答。用一个答案来回答这个问题。@MatsLindh,在我们回答之前,我们需要知道实际的问题,标题和正文几乎没有共同点
for row in range(5):
for cell in squareList[row*5:row*5+5]:
print(cell, end='')
print()