问题描述
我想编写一个列表推导式,它将每隔一个元素从数组中打印一个元素。我该怎么做?
for item in results:
record = extract_record(item)
if record:
records.append(record)
解决方法
在 Python 3.8 或更高版本中,您可以使用赋值表达式并执行类似操作
records = [record for item in results if (record := extract_record(item))]
这避免了必须两次提取记录。
,与上面等效的列表推导式将是:
records = [extract_record(item) for item in results if extract_record(item)]
请注意,extract_record()
需要两次,因此用处不大。