gpt4 book ai didi

python - 在 python 中解压枚举的 zip

转载 作者:行者123 更新时间:2023-12-01 23:34:36 26 4
gpt4 key购买 nike

我有三个列表,我想用索引对其进行迭代。为此,我尝试使用 enumerate(zip(x, y, z)),但是当我尝试解压它时,它失败了

[f.write('mVtet0.row({}) = Eigen::Vector3d({}, {}, {})\n'.format(i, x,y,z) for i, x, y, z in enumerate(zip(x,y,z))]

给出以下错误:ValueError:没有足够的值来解压(预期 4,得到 2)

我理解这个问题,enumerate 创建了一个包含索引和 zip 结果的元组。打开所有东西的正确方法是什么?

最佳答案

你得到 int 和一个 tuple。将 x、y、z 括在方括号中,使其成为 tuple

[f.write('mVtet0.row({}) = Eigen::Vector3d({}, {}, {})\n'.format(i, x,y,z) 
for i, (x, y, z) in enumerate(zip(x,y,z))]

也就是说,在我看来这是 abuse of list comprehension唯一的目的是使它成为一条线。最好使用常规循环——它会更具可读性。并且最好使用 f 弦。

for i, (x, y, z) in enumerate(zip(x,y,z)):
f.write(f'mVtet0.row({i}) = Eigen::Vector3d({x}, {y}, {z})\n')

关于python - 在 python 中解压枚举的 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65753691/

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