【发布时间】:2020-07-21 20:13:49
【问题描述】:
我正在寻找一种 Python 方式来从函数返回的元组中追加到多个列表。
所以转这个:
def f():
return (1,2)
a = []
b = []
for c in container:
r1, r2 = f()
a += [r1]
b += [r1]
变成这样的:
for c in container:
a, b += f()
我的代码有点复杂(在循环中做了几个操作),我有一个使用 zip 和列表理解的版本,但它有点不可读:
list1, list2, list3 = zip (*[
c( list(img.to(devices[i]) for img in images),
features[i],
[{k: v.to(devices[i]) for k, v in t.items()} for t in targets]
)
for i, c in enumerate(container)
])
如果我可以将列表推导式转换为常规 for 并具有紧凑的附加方式,我认为可读性会提高很多。
提前致谢!
【问题讨论】:
标签: python