使用python3进行字符串格式打印:如何从数组中打印?

时间:2019-05-11 16:56:53

标签: python python-3.x printing string-formatting

Python3具有超级string.format打印:

'{} {}'.format('one', 'two')

如果我的字符串在数组中,一种方法是将它们键入:

a = ['one','two']
'{} {}'.format(a[0],a[1])

但是如何从数组中打印,而不必键入每个元素?

例如,损坏的代码:

a = ['one','two']
'{} {}'.format(a)

给我一​​个预期的错误:IndexError: tuple index out of range

当然,玩','.join(a)并没有帮助,因为它给出的是一个字符串而不是2。

(或者有没有办法用f弦更好地做到这一点?)


对于全公开,我使用的是原始字符串,因为它具有某些几何意义,而我的真实代码如下所示:

hex_string = r'''
            _____
           /     \
          /       \
    ,----(    {}    )----.
   /      \       /      \
  /   {}    \_____/   {}    \
  \        /     \        /
   \      /       \      /
    )----(    {}    )----(
   /      \       /      \
  /        \_____/        \
  \   {}    /     \   {}    /
   \      /       \      /
    `----(    {}    )----'
          \       /
           \_____/
'''

letters = list('1234567')

print(hex_string.format(letters[0], letters[1], letters[2], letters[3], letters[4], letters[5], letters[6]))

3 个答案:

答案 0 :(得分:5)

在函数调用期间使用unpacking扩展数组。

print(hex_string.format(*letters))

输出:

            _____
           /     \
          /       \
    ,----(    1    )----.
   /      \       /      \
  /   2    \_____/   3    \
  \        /     \        /
   \      /       \      /
    )----(    4    )----(
   /      \       /      \
  /        \_____/        \
  \   5    /     \   6    /
   \      /       \      /
    `----(    7    )----'
          \       /
           \_____/

答案 1 :(得分:3)

尝试使用*来解压缩列表中的元素,如下所示。例如,打印看起来像

print ('{} {}'.format(*a))
# one two

答案 2 :(得分:1)

*表示法用于列表:

print(hex_string.format(*letters))