是否有可能有一个元组内?
我想建立这样的:是否有可能有一个元组内?
A = (
'parlament',
'queen/king' if not country in ('england', 'sweden', …),
'press',
'judges'
)
有什么办法来建立这样一个元组?
我试图
'queen/king' if not country in ('england', 'sweden', …) else None,
'queen/king' if not country in ('england', 'sweden', …) else tuple(),
'queen/king' if not country in ('england', 'sweden', …) else(),
,但没有什么工作,似乎没有成为一个元组无元素,所以我有一个3元组的英格兰,瑞典等,为身边所有国家我得到一个四元组
可以提出您以下
A = (('parlament',) +
(('queen/king',) if not country in ('england', 'sweden', …) else tuple()) +
('press', 'judges'))
这使您可以包括或不包括在结果的元组元素(不像默认值,如果你不使用元组连接,将包含这个值。
A = ('parlament',
'queen/king' if not country in ('england', 'sweden', …) else 'default',
'press', 'judges')
对于任何使用这种溶剂的人来说,注意不要忘记元组中的',',否则会吹 – Hoffmann
是的,但你需要一个else
声明:
>>> country = 'australia'
>>> A = (
... 'parlament',
... 'queen/king' if not country in ('england', 'sweden') else 'default',
... 'press',
... 'judges'
... )
>>> print A
('parlament', 'queen/king', 'press', 'judges')
另一E xample:
>>> country = 'england'
>>> A = (
... 'parlament',
... 'queen/king' if not country in ('england', 'sweden') else 'default',
... 'press',
... 'judges'
... )
>>> print A
('parlament', 'default', 'press', 'judges')
这是一个conditional expression,或者称为三元条件运算符。
是的,你可以,但为此,你的三元条件必须是有效的,即你也需要一个else
条款。
三元运营商在python:
>>> 'x' if False else 'y'
'y'
您的代码:
A = (
'parlament',
'queen/king' if not country in ('england', 'sweden') else 'foo',
'press',
'judges'
)
我认为你实际上说*不,你不能*。但问题不明确。 – Elazar
您可以使用三元条件运算符 如:
A= ('a', 'b', 'c' if condition else 'd')
这是不可能的元组是你想要的,如果它的参数数量不恒定。你需要一个'list',或者在第二个字段中总是有一些东西(例如'None')的四元组。如果你将解释你打算如何使用它,我们将能够给你更好的答案。 – Elazar
你试过的东西似乎适用于我。什么不工作。你收到一个'SyntaxError'吗? – TerryA
我可以使用'list',但是dosn't并没有解决我寻找一个“do-insert-nothing”的问题,因为这个案例 – Hoffmann