【问题标题】:I want my output to be free of line breaks?我希望我的输出没有换行符?
【发布时间】:2022-01-08 09:30:29
【问题描述】:
table = [[False,False,False,False,False], [False,False,True,False,True]]
    
#not changes------------------
for lines in table:
    for item in lines:
        print("%s\t" % item)
    print("\n")
#-----------------------------

我想要的输出是:

False False False False False
False False True False True

但我的输出是:

错误
假的
假的
假的
假的

错误
假的
真的
假的
是的

【问题讨论】:

  • 您的列表深度为 3 - 您需要另一个循环来解压最后一个列表。
  • 你的问题有点令人困惑——如果你不想换行,你不能简单地删除print("\n")吗?
  • 另外,如果你想添加一个换行符,只需 print() 而不是 print("\n")

标签: python truthtable


【解决方案1】:

您可能应该在这里使用熊猫:

table = [[False,False,False,False,False], [False,False,True,False,True]]
import pandas as pd
df = pd.DataFrame(table)
for index, row in df.iterrows():
        row.to_string(index=False).replace('\n', ' ')

输出:

'False False False False False'
'False False  True False  True'

【讨论】:

  • 我编辑过问对不起
  • 根据您有问题的编辑更新了答案
【解决方案2】:

print() 有一些额外的参数,默认为

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

注意end='\n' - 基本上每当您调用 print() 时,end 都会添加到您正在打印的任何内容的末尾。您需要通过执行print(value, end='') 来删除这个额外的\n

这会让你:

False   False   False   False   False

False   False   True    False   True

这似乎仍然不是你想要的。将\t 替换为 会让你更接近:

False False False False False 

False False True False True

最后,既然您知道\n 默认添加到print() 的末尾,您可能会明白为什么print('\n') 实际上会变成print('\n\n') - 如果您将print('\n') 替换为print() ,你会得到你想要的输出:

False False False False False 
False False True False True

干杯

【讨论】:

  • 还有一点提示,您可以使用print("%s " % item, end=""),而不是print(item, end=" ")
【解决方案3】:

如果你也想删除括号,你需要再嵌套一个循环,它将解包最内层列表的元素,然后为每个内层列表添加一个新行,如下代码所示:

table = [[[False,False,False,False,False], [False,False,True,False,True]]
        ,[[False,False,False,False,False], [False,False,True,True,False,True,True]]]
    
#not changes------------------
for lines in table:
    for item in lines:
        for i in item:
            print("%s " % i, end='')# use '\t' if you need more space in between in print("%s\t" % i, end='')
        print()
#         print("%s\t" % item)... commenting this as not in use
    print()
#-----------------------------

下面是输出:

False False False False False 
False False True False True 

False False False False False 
False False True True False True True 

如果这是你想做的,请告诉我。

【讨论】:

  • 谢谢你,我已经完成了
  • 有没有用?
【解决方案4】:

选项一:

table = [[False,False,False,False,False], [False,False,True,False,True]]
for lines in table:
    print(str(lines).replace('[', '').replace(']', ''))

选项二:

table = [[False,False,False,False,False], [False,False,True,False,True]]
for lines in table:
    print(','.join([str(item) for item in lines]))

输出:

False, False, False, False, False
False, False, True, False, True

【讨论】:

  • 我编辑过问对不起
  • 编辑代码以匹配:)
猜你喜欢
  • 1970-01-01
  • 2015-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
相关资源
最近更新 更多