我需要用点“."替换列表中的0。我还需要用“o”替换1,用“*”替换2。它应该是像棋盘一样的东西。到目前为止,我有这个,我坚持替换。谢谢你的帮助!:)
chess =[
["0 1 0 1 0 1 0 1 "],
["1 0 1 0 1 0 1 0 "],
["0 1 0 1 0 1 0 1 "],
["0 0 0 0 0 0 0 0 "],
["0 0 0 0 0 0 0 0 "],
["2 0 2 0 2 0 2 0 "],
["0 2 0 2 0 2 0 2 "],
["2 0 2 0 2 0 2 0 "]]
def prt(n):
for i in range(len(n)):
for j in range(len(n[i])):
if n[j] == "0":
n[j] = "."
print(n[i][j])
prt(chess)
输出应该如下所示
5条答案
按热度按时间c8ib6hqw1#
我想如果你只需要打印布局,这将是一个解决它的方法:
结果:
whitzsjs2#
对于字符串,应使用
replace
函数。new9mtju3#
在列表的每个列表中存储一个字符串,即
"0 1 0 1 0 1 0 1 "
,因此循环不起作用:对单个数字的比较是不起作用的。为了得到单个数字,你可以对列表中唯一的元素使用
split
方法。所以你需要通过0
索引访问它,并对该元素调用split
。建立一个新的list列表来存储修改后的值。使用此方法,您可以扩展
if
逻辑,以检查"1"
和"2"
以及任何其他值,从而不更改该值。变更内容:
letters
设置为board
的第一个和最后一个元素enumerate
enumerate
的start
值设置为1
以获取修改后的索引这将为您提供所需的结果:
ctrmrzij4#
你可以尝试用replace函数来替换字符串,并遍历行本身:
编辑:感谢@Muhammad Rizwan指出replace返回结果。
fnx2tebb5#
非常感谢你的帮助。到目前为止我已经做到了这一点,但我不知道如何像图片中那样在行的开头和结尾放上数字。
我的新代码:
这就给了我这个: