gpt4 book ai didi

python - 从其他列表创建列表的更简单方法

转载 作者:行者123 更新时间:2023-11-28 22:42:59 26 4
gpt4 key购买 nike

我有 3 个列表:x、y 和 z。所有的大小都相同,但我需要创建新的 x、y 和 z 列表,具体取决于 z 的每个索引处的值,如下所示:

xNew = []
yNew = []
zNew = []
i = 0
for value in z:
if value > 0:
xNew.append(x[i])
yNew.append(y[i])
zNew.append(z[i])
i += 1

有谁知道是否有更简洁、甚至更高效的方法来执行上述计算?

最佳答案

可能是最直接的方式:

it = zip(x, y, z)
xnew, ynew, znew = zip(*(t for t in it if t[-1] > 0))

我们使用 the zip function两次恢复数据的原始结构。


zip(x, y, z) 创建一个新的迭代器对象,它产生三元组。

(t for t in it if t[-1] > 0) 过滤三元组(t[-1] ).

zip(*(...)) 正好产生 3 个元组和 xnewynewznew接收它们。

关于python - 从其他列表创建列表的更简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com