【问题标题】:How to Get python print result in one line for 2d array如何在一行中获取二维数组的python打印结果
【发布时间】:2022-08-23 19:58:50
【问题描述】:

乘客等级:

def __init__(self, name, IsBooked):
    self.name = name
    self.IsBooked = IsBooked

座位 = [[0]*2]*2

对于范围内的 i (2):

for j in range(2):
    Seats[i][j] = Passenger(\'\', False)

对于范围内的 i (2):

for j in range(2):
    if(Seats[i][j].IsBooked == False):
        print(\'X\')
print(\'\\n\')

我想将输出打印为

X X

X X

但我得到的结果是

我应该在哪里修改代码以获得预期的结果?

  • 顺便说一句,Seats = [[0]*2]*2 并没有按照你的想法做。见:stackoverflow.com/questions/240178/…
  • 您实际上是在 for i 的每次迭代中打印 \\n - 您期望什么?取消 print(\'\\n\') 行并完成

标签: python arrays python-3.x multidimensional-array arraylist


【解决方案1】:

好的

class Passenger:
    def __init__(self, name, IsBooked):
        self.name = name
        self.IsBooked = IsBooked


txt = ''
Seats = [[0]*2]*2
for i in range(2):
    for j in range(2):
        Seats[i][j] = Passenger('', False)

for i in range(2):
    for j in range(2):
        if(Seats[i][j].IsBooked == False):
            txt += 'X '
            txt_with_new_line += 'X\n'

    print(txt + '\n')
    txt = ''
#   Result
#   X X
#
#   X X

【讨论】:

    【解决方案2】:
    class Passenger:
        def __init__(self, name, IsBooked):
            self.name = name
            self.IsBooked = IsBooked
    
    
    Seats = [[0]*2]*2
    for i in range(2):
        for j in range(2):
            Seats[i][j] = Passenger('', False)
    
    for i in range(2):
        for j in range(2):
            if(Seats[i][j].IsBooked == False):
                print('X', end='')
    

    您需要在最后一行中删除print('\n'),因为它是在每两个元素之后执行的。

    【讨论】:

    • 我想要结果。 X X X X 但是在删除该行之后,每次我想在同一行打印时,我都会在新行中获得 X
    • 哦,打印函数默认以 '\n' 转义序列(新行)结尾。您可以在函数中给出另一个参数end=''。您的新打印功能将变为print('X', end='')
    猜你喜欢
    • 1970-01-01
    • 2016-11-27
    • 2013-07-26
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    相关资源
    最近更新 更多