2024-04-29 09:07:35 发布
网友
我正在将一个Python代码转换为C,以便利用HPC系统上可用的并行性(这是一个痛苦的过程),我在Python中遇到了一个条件,最初的程序员使用它使我困惑
if rnum <> current_res: alim = 0 if len(f): alim = f[-1]
如果len(f)满足了呢?我在网上找不到这样的惯例。我认为这是一个糟糕的编程实践。
任何帮助都将不胜感激!
在Python中,在布尔上下文中,被视为“空”的值(如数字0)被视为False,否则为True。
因此,如果f具有长度,len(f)为真,否则为空。如果f是标准的Python序列类型,那么代码可以简化为:
f
len(f)
if f: alim = f[-1]
因为这同样适用于序列;empty是False,具有非零长度意味着它是True。
有关所有重要的详细信息,请参见Python文档中的Truth Value Testing。
注意,<>已被弃用;您应该真正使用!=代替。
<>
!=
这个
if len(f)
将转换为:
if len(f) != 0
或者在这种情况下,因为len(f)从来不是负的
if len(f) > 0
在大多数情况下if len(f):与if f:是同一回事。。。
if len(f):
if f:
原因是如果f没有长度,它将返回0,这是一个错误的值。实际上,真相测试实际上检查对象的长度(__len__)under some circumstances.
0
__len__
在Python中,在布尔上下文中,被视为“空”的值(如数字0)被视为False,否则为True。
因此,如果
f
具有长度,len(f)
为真,否则为空。如果f
是标准的Python序列类型,那么代码可以简化为:因为这同样适用于序列;empty是False,具有非零长度意味着它是True。
有关所有重要的详细信息,请参见Python文档中的Truth Value Testing。
注意,
<>
已被弃用;您应该真正使用!=
代替。这个
将转换为:
或者在这种情况下,因为
len(f)
从来不是负的在大多数情况下
if len(f):
与if f:
是同一回事。。。原因是如果
f
没有长度,它将返回0
,这是一个错误的值。实际上,真相测试实际上检查对象的长度(__len__
)under some circumstances.相关问题 更多 >
编程相关推荐