问题描述
我对简单的循环使用列表理解。但是我无法对以下代码使用列表理解。我该怎么做?
import psutil
list1 = []
for pr in psutil.process_iter():
with pr.oneshot():
list1.append([pr.name(),pr.status()])
Python 3.8
解决方法
我不推荐它,但从技术上讲,您可以使用以下代码将 for 循环转换为列表推导式:
from contextlib import ExitStack
with ExitStack() as stack:
list1 = [
(tmp := [pr.name(),pr.status()]) and stack.close() or tmp
for pr in psutil.process_iter()
for pr in [stack.enter_context(pr.oneshot()),pr][1:]
]
del tmp