不确定某些代码是如何工作的

时间:2017-08-30 07:00:35

标签: python

Grid = ["A1","A2","A3","B1","B2","B3","C1","C2","C3"]
  print("This is the grid.")
  for i in range(3):
    print("\t".join(Grid[(i*3):(i*3+3)]))

我一直在寻找一种在Python中创建2D 3x3网格的方法,并找到了这个。我想使用它,但我不确定第4行实际上是如何工作的,除了" \ t"。

非常感谢,谢谢:)

5 个答案:

答案 0 :(得分:1)

String.join方法将集合与定义的分隔符组合在一起。在您的示例中,\t是一个标签。因此,您将在新字符串中的项目之间有一个选项卡。

>>> Grid = ["A1","A2","A3","B1","B2","B3","C1","C2","C3"]
>>> for i in range(3):
    print("\t".join(Grid[(i*3):(i*3+3)]))


A1  A2  A3
B1  B2  B3
C1  C2  C3

>>> for i in range(3):
    print(" --- ".join(Grid[(i*3):(i*3+3)]))


A1 --- A2 --- A3
B1 --- B2 --- B3
C1 --- C2 --- C3

这里有一个简短的教程String.join

答案 1 :(得分:1)

让它分开:

Grid[(i*3):(i*3+3)]

这是使用列表切片。让我们更容易,并说我是0.然后这是

Grid[0:3]

这是索引0到2的元素,所以列表的前三个元素。如果我是一个,那么

Grid[3:6]

索引为3到5的元素,中心3个元素。

"\t"是制表符,join()函数将前面的字符串放在参数列表的每个元素之间。所以

print("\t".join(Grid[(i*3):(i*3+3)]))

打印由制表符分隔的列表中的三个连续元素,然后开始一个新行。

包括for - 循环,程序打印三行3个元素排列在3x3网格中,左上角为"A1",右下角为"C3"

A1      A2      A3
B1      B2      B3
C1      C2      C3

答案 2 :(得分:0)

Grid是一个列表。方括号用于访问列表的元素。 如果方括号中有冒号:,则称为slicing,它用于访问多个元素。例如x[1:4]选择列表中的第二个到第四个元素。

答案 3 :(得分:0)

好的,让我们打破for循环:

for i in range(3):
    print("\t".join(Grid[(i*3):(i*3+3)]))

i这里只是为了迭代上述列表。在for循环的print()语句中,join()方法将元素Grid[(i*3):(i*3+3)]与制表符连接起来。由于i在循环的迭代中将其值从0更改为3,因此列表中引用的切片将为Grid[0:3]Grid[3:6],{{ 1}}分别。然后,由于Grid[6:9]语句中的默认end='\n',它会打印每个切片中的值(由制表符分隔)和换行符。

希望这有帮助!

答案 4 :(得分:0)

Grid列表中有九个元素。 for循环迭代三次,每次从Grid中选择三个连续元素,并用制表符打印它们。在最后一行中,Grid[(i*3):(i*3+3)]部分选择了三个元素。我们可以使用列表切片从列表中选择元素。可以使用list_name[0:3]选择列表中的多个元素。这将选择前三个元素。请注意,不会选择索引为3的元素。这个切片的结果是一个列表。

然后使用join函数将所有元素转换为单个字符串。连接接受单词的列表或元组以及在列表的连续元素之间种植的分隔符。