【问题标题】:Variable with other variables always prints to same line python带有其他变量的变量总是打印到同一行 python
【发布时间】:2018-08-04 17:55:27
【问题描述】:

为什么一个包含其他变量的变量只打印到一行,即使明确列出了 sep 和 end?

var1 = 123
var2 = ("foo", "678)
var3 = 456
var4 = var1, var2, var3
print(var4)   # Or sep="\n"   Or end="\n"
print("var1 is ", var1, var2, var3)

我似乎以哪种方式运行的结果是:

(123, 'foo', 456)
123 foo 456

*更新 - 我可以做这样的工作,但是多次调用这个是多余的。

print("var1 is: ", var1,
  "\nvar2 is: ", var2,
  "\nvar3 is: ", var3)
# Results were
var1 is:  123 
var2 is:  foo 
var3 is:  456

由于无法将新行存储到变量中,我必须在每一点重新列出此方法,这是多余的。使用

print(*var4, sep='\n')

分解 var2(这实际上是我脚本上的一个 dict),产生如下输出:

123
foo
1
foo
2
var3

【问题讨论】:

  • 相同的输出,只是没有显示为元组(123, 'foo', 456) 转到123 foo 456。更新了原文以显示我想从中得到什么。

标签: python variables printing


【解决方案1】:

试试

print(*var4, sep='\n')

这将解包元组,因此print 将它们作为多个参数而不是单个元组参数。 (这样它实际上可以使用分隔符。)

【讨论】:

  • 这行得通,但在运行后看到另一个跟进。我的 Var2 实际上是一个包含两部分的字典,所以print(*var4, sep='\n') 将我的字典列表打印成两行。 * 可以用来隔离我想以这种方式分解的那些吗?我最终只是制作了一长串变量和文本以使其现在可以正常工作。
  • @D-slr8 我需要一个更好的示例输入和所需的输出来回答这个问题。分解dict的方法有很多种,我不知道你想要哪一种。
  • 现在一切都好,在对 print(*var4, sep='\n') 进行一些修改后,我能够得到一些工作
【解决方案2】:

不确定你在问什么,但你总是可以这样做......

print('\n'.join(var4))

【讨论】:

  • 这返回了一个错误TypeError: sequence item 3: expected str instance, int found。不确定这是否是因为我实际上是从内部函数运行此打印。
  • 感谢您指出这一点。我想你可以用 (str(i) for i in var4) 替换元组,以明确地将每个项目设为一种类型,以便能够打印它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-29
  • 1970-01-01
  • 2014-09-07
  • 2015-12-30
  • 2021-02-19
  • 2020-05-24
  • 1970-01-01
相关资源
最近更新 更多