gpt4 book ai didi

python - 如何将 tuple1 if ... else tuple2 传递给 str.format?

转载 作者:太空狗 更新时间:2023-10-29 18:14:57 25 4
gpt4 key购买 nike

简单来说,为什么会出现以下错误?

>>> yes = True
>>> 'no [{0}] yes [{1}]'.format((" ", "x") if yes else ("x", " "))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

我使用的是 python 2.6。

最佳答案

☞ 索引选项:

在格式字符串中访问参数项时,应该使用索引来调用值:

yes = True
print 'no [{0[0]}] yes [{0[1]}]'.format((" ", "x") if yes else ("x", " "))

{0[0]} in format string equals ("", "x")[0] in calling index of tulple

{0[1]} in format string equals ("", "x")[1] in calling index of tulple


* 运算符选项:

或者您可以使用 * 运算符来解包参数元组。

yes = True
print 'no [{0}] yes [{1}]'.format(*(" ", "x") if yes else ("x", " "))

调用*运算符时,'no [{0}] yes [{1}]'.format(*("", "x") if yes else ("x ", "")) 等于 'no [{0}] yes [{1}]'.format("", "x") 如果 if 语句为 True


** 运算符选项(当你的 var 是 dict 时这是额外的方法):

yes = True
print 'no [{no}] yes [{yes}]'.format(**{"no":" ", "yes":"x"} if yes else {"no":"x", "yes":" "})

关于python - 如何将 tuple1 if ... else tuple2 传递给 str.format?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30185316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com