gpt4 book ai didi

python - 列出一级 "unpacking"

转载 作者:行者123 更新时间:2023-12-01 07:15:22 27 4
gpt4 key购买 nike

我有一个返回 Sympy 点的函数:

result = [Point3D(500, 500, 10), Point3D(-500, 500, 10), Point3D(-500, -500, 10), Point3D(500, -500, 10)]

但是我需要获取点的值,而不是点实例,所以我这样做:

a, b, c, d = [], [], [], []
for i in range(3):
a.append(result[0][i])
for i in range(3):
b.append(result[1][i])
for i in range(3):
c.append(result[2][i])
for i in range(3):
d.append(result[3][i])

# And then pack it:
result = [tuple(a), tuple(b), tuple(c), tuple(d)]

我知道这是获取所需输入的一种可怕的方式,即:

result = [(500, 500, 10), (-500, 500, 10), (-500, -500, 10), (500, -500, 10)]

我怎样才能做得更好?

最佳答案

使用列表理解:

result = [tuple([p[0], p[1], p[2]]) for p in result]

我刚刚查看了Point3D的文档,看来你可以有一个更优雅的解决方案:

result = [tuple([p.x, p.y, p.z]) for p in result]

或者正如 @OscarBenjamin 在评论中指出的那样,这可能是最简单的解决方案,您可以使用:

result = [p.args for p in result]

关于python - 列出一级 "unpacking",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58000778/

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