使用str.format()
我可以使用元组来访问参数:
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
' a,b,c'
或
>>> t = ('a', 'b', 'c')
>>> '{0}, {1}, {2}'.format(*t)
' a,b,c'
但是新的格式化字符串文字以' f'为前缀。如何使用元组?
答案 0 :(得分:1)
您的第一个str.format()
调用是一个带有3个参数的常规方法调用,没有涉及元组。您的第二个电话使用*
splat调用语法; str.format()
调用收到3个单独的个别参数,并不关心那些来自元组。
使用f
格式化字符串不要使用方法调用,因此您无法使用任何一种技术。 f'..'
格式化字符串中的每个插槽都是作为常规Python表达式执行的。
您必须直接从元组中提取您的值:
f'{t[0]}, {t[1]}, {t[2]}'
或首先将您的元组扩展为新的局部变量:
a, b, c = t
f'{a}, {b}, {c}'
或继续使用str.format()
。您没有 使用f'..'
格式化字符串,这是该语言的新增功能,而不是{{1 }}
来自PEP 498 -- Literal String Interpolation:
本PEP不建议删除或弃用任何现有的字符串格式化机制。