Python中的if len(list)

2024-04-29 09:07:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一个Python代码转换为C,以便利用HPC系统上可用的并行性(这是一个痛苦的过程),我在Python中遇到了一个条件,最初的程序员使用它使我困惑

   if rnum <> current_res:
      alim = 0
      if len(f): alim = f[-1]

如果len(f)满足了呢?我在网上找不到这样的惯例。我认为这是一个糟糕的编程实践。

任何帮助都将不胜感激!


Tags: 代码利用lenif过程系统rescurrent
3条回答

在Python中,在布尔上下文中,被视为“空”的值(如数字0)被视为False,否则为True。

因此,如果f具有长度,len(f)为真,否则为空。如果f是标准的Python序列类型,那么代码可以简化为:

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:是同一回事。。。

原因是如果f没有长度,它将返回0,这是一个错误的值。实际上,真相测试实际上检查对象的长度(__len__under some circumstances.

相关问题 更多 >