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]))
答案 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))