我真的只是想知道,当涉及到这种情况时,Python的处理方式是什么?使用SELECT p.name, GROUP_CONCAT(v.place) AS VisitedPlaces
FROM Person AS p
INNER JOIN Visits AS v ON p.id = v.person_id
WHERE p.name = 'Ram'
;
三元或if else
:
or
编辑:我更新了该问题以忽略语义,我主要是想知道哪个表达式更符合pythonic。
答案 0 :(得分:3)
这是引入的条件运算符的情况;使用它。
string += x if x else y # Or ... if x is not None ... if the distinction is necessary
通常,当您只关心表达式的真实性而不关心正在考虑真实性的“实际”值时,请使用or
。
之所以引入条件表达式,是因为许多人试图像这样编写代码
<condition> and x or y
但这是一个微妙的错误:如果条件为真,则意图是使表达式等于x
,但是如果条件两者都等于x
x
是正确的。
答案 1 :(得分:1)
在x
和y
都可以为None
的情况下,您可以执行更详细的操作:
>>> string = ""
>>> x, y = (None, None)
>>> string += x if x else y if y else '' # Fallback to empty string
>>> string
''