当前代码:
error = dict.get("error", None)
if error:
print(error)
是否可以将其放在一行上,例如:
print(error) if (error = dict.get("error", None))
在C语言中,您可以分配一个值,然后进行比较,然后将其打印在一行上:
if (a = 5) printf("%d",a);
答案 0 :(得分:1)
您可以使用dict.get(key,default)
和print()
并使用三元告诉print("" if not d.get("error") else d["error"])
或end=""
来避免/使用换行符,而不必使用三进制的end="\n"
:
d = {"error": "plenty"}
print( d.get("error",""), end = "\n" if d.get("error","") else "")
如果密钥不存在,则此命令不打印任何内容(由于end=""
也不会打印换行符。)
答案 1 :(得分:1)
在Python 3.8中,您将能够编写
if error := dict.get("error", None):
print(error)
Python没有Perl样式的语句修饰符,但是由于print
是一个函数,因此您可以编写类似
print(error) if (error := dict.get("error", None)) else None
尽管我不推荐。 (实际上,我不能完全确定PEP-572定义的赋值表达式是否与条件表达式交互。我还没有使用任何引用实现对其进行测试,但是我相信error
会在整个表达式。)
像这样的简单if
语句,但是, 可以写在一行上(尽管再次,我不推荐这样做; PEP-8明显不赞成
if error := dict.get('error', None): print(error)
)
答案 2 :(得分:0)
在答案here的基础上,您可以使用分号填充多个表达式。像
error = my_dict.get("error", None); print(error) if error is not None else None
应该可以,但是我在手机上打字并且无法测试。
答案 3 :(得分:0)
您可以简单地使用if else
提供的内联python
。
print('error') if dict.get("error") else 0
那!希望对您有所帮助:)