繁体   English   中英

列出一级“拆包”

List one level “unpacking”

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个返回 Sympy 点的 function:

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)]

我怎样才能以更好的方式做到这一点?

2 个回复

使用列表推导:

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]

小提示:(由我)向 sympy 的点 class 添加了一个新方法,该方法返回该点的所有坐标:

result = [p.coordinates for p in result]
1 如何退出一级导入的包

在haskell交互模式下,ghci。 如果我导入了一个包,例如: import Data.List 我去了Prelude Data.List> 我的问题是,如何回到“前奏曲” 谢谢, ...

4 AndroidStudio仅导入包的第一级

为了清楚起见,我希望android studio仅导入某个包的第一级。 在我的结构中(字母是类): 如果我想在C类中使用函数,则android studio将执行此导入:自动import "ABC"并在我的代码中将这样调用我的函数a = myfunction() 。 但是我希 ...

6 仅列出jets3t中的第一级文件

我正在使用jets3t在我们的一个存储桶中列出文件。 我注意到它会返回所有内容。 我想按目录遍历存储桶,而不是一次全部获取,这将花费很长时间,所以我很好奇是否有一种方法只能将文件放在第一层吗? 例如: \\ bin -\\ file1.txt -\\ folder1 ...

10 无法列出目录中第一级的子目录

我想获取不带“。”的子目录列表(在第一级)。 和“ ..”,例如目录“ / var /”。 我有这个perl脚本,但是它不起作用: 输出为: / var清单 请在我弄错的地方? ...

2015-12-17 16:46:10 1 55   perl/ unix
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM