【发布时间】:2020-07-03 03:13:41
【问题描述】:
由于变量是从缓存中获取的,所以它可能是 NoneType 或列表,
只是想知道在单行 if 语句中追加或分配而不是
if result:
result.append(data)
else:
result = [data]
我已经尝试过:
result.append(data) if result else [data]
但代码返回只会有一个元素。
【问题讨论】:
-
这个缓存是什么,为什么您从中检索的值有时是无,有时是列表?如果您使用的是 dict,请考虑使用
collections.defaultdict或dict.setdefault。 -
您还遇到
result = [data]不会写回缓存的问题,而result.append(data)会改变现有列表,这可能会影响缓存,具体取决于缓存的实际情况是。 -
三元
if/else运算符旨在成为一个表达式(与if语句不同)。在表达式中存在副作用通常被认为是一种不好的做法,因为它会使代码变得不那么清晰和可读。我建议继续使用您的第一个示例。您的代码示例也有细微差别。
标签: python python-3.x list