![](/img/trans.png)
[英]How can I create a 3D array made of more than one object in Python?
[英]How can I create more than one array at the same time using a generator?
假设我们有 3 个数组,索引,a 和 b。 如何创建仅通过索引一次的数组 c 和 d?
c = [a[i] for i in index]
d = [b[i] for i in index]
有没有办法用单一生成器创建这些数组?
您可以使用zip
功能:
c, d = zip(*((a[i], b[i]) for i in index))
如果您希望c
和d
成为列表,您可以使用map
:
c, d = map(list, zip(*((a[i], b[i]) for i in index)))
如果你想要更长的时间(但也许更清晰),你可以构建一个生成器:
def g(a, b, index):
for i in index:
yield a[i], b[i]
c, d = zip(*g(a, b, index))
我将使用带有元组扩展的 zip *
c,d = zip(*((a[i],b[i]) for i in index))
在这里,它使用生成器表达式中的 zip 成对扩展 a[i] 和 b[i]。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.