反斜杠-n在打印时不会被解释为换行符?

时间:2017-08-15 01:09:04

标签: python

给出一个简单的地图:

combinations  = {'a':11, 'b': 12, 'c': 13}

让我们在不同的行上打印条目:

print('Combinations: ', '\n'.join(str(c) for c in combinations.iteritems()))

..或者可能不是..

('Combinations: ', "('a', 11)\n('c', 13)\n('b', 12)")

为什么\n不会被解释为换行符?

2 个答案:

答案 0 :(得分:4)

你使用的是Python 2而不是Python 3,所以print实际上是在打印一个元组。将元组转换为字符串会将repr应用于其元素。

无论

  • 切换到Python 3,

  • 使用__future__获取Python 2中的print函数,

    from __future__ import print_function
    
  • 或删除元组。

    print 'Combinations: ', '\n'.join(str(c) for c in combinations.iteritems())
    

答案 1 :(得分:0)

我不确定这个问题,但是这不是print()或'\ n'的问题,请参阅以下示例:

print('first\nsecond\nthird')
first
second
third

如果要打印每个行的键值,可以执行以下操作

print('\n'.join(str(c[0]) + ": " + str(c[1]) for c in combinations.iteritems()))
a: 11
c: 13
b: 12