一次获取三个逗号分隔值

发布于 2024-10-06 06:42:25 字数 185 浏览 2 评论 0原文

所以我有一个包含逗号分隔数字的文本文件,我正在尝试编写Python来一次获取三个数字 - 它们是3D坐标,我想一次分析它们3个。

文本文件的形式为

x1,y1,z1,x2,y2,...,

,只有一行。

So I have a text file with comma separated numbers, I'm trying to write Python to get me the numbers three at a time - they're 3D co-ordinates and I want to analyse them 3 at a time.

The text file is of the form

x1,y1,z1,x2,y2,...,

and is just one line.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

前事休说 2024-10-13 06:42:25

为此,您不需要正则表达式。查看 CSV 模块

You don't need regex for this. Check out the CSV module.

假情假意假温柔 2024-10-13 06:42:25
def coords(line):
    parts = line.split(',')
    for i in range(0, len(parts), 3):
        yield map(int, parts[i:i+3])

真的不需要诉诸正则表达式。

def coords(line):
    parts = line.split(',')
    for i in range(0, len(parts), 3):
        yield map(int, parts[i:i+3])

No need to resort to regexes, really.

夜雨飘雪 2024-10-13 06:42:25

是的,任何逗号分隔的数据都表明需要 CSV,但您也可以在这里进行简单的拆分。

以逗号分隔的 (x, y, z) 坐标字符串

>>> t = "x1,y1,z1,x2,y2,z2,x3,y3,z3"

使用 split :

>>> t1 = t.split(',')
>>> t1
['x1', 'y1', 'z1', 'x2', 'y2', 'z2', 'x3', 'y3', 'z3']

然后将结果整理/分组为 3 个元素。您需要确保 len(t1) 是 3 的倍数。为此使用断言。

>>> t2 = []
>>> for x in range(len(t1)/3): t2.append(t1[x*3 : x*3+3])
... 
>>> t2
[['x1', 'y1', 'z1'], ['x2', 'y2', 'z2'], ['x3', 'y3', 'z3']]
>>> 

Yeah, Any comma separated data evinces the need for CSV but you could do with simple split here too.

Your comma separated string of (x, y, z) coordinates

>>> t = "x1,y1,z1,x2,y2,z2,x3,y3,z3"

Use split :

>>> t1 = t.split(',')
>>> t1
['x1', 'y1', 'z1', 'x2', 'y2', 'z2', 'x3', 'y3', 'z3']

Then collate / group the results into 3 elements. You will need to make sure that len(t1) is multiple of 3s. Use assert for that.

>>> t2 = []
>>> for x in range(len(t1)/3): t2.append(t1[x*3 : x*3+3])
... 
>>> t2
[['x1', 'y1', 'z1'], ['x2', 'y2', 'z2'], ['x3', 'y3', 'z3']]
>>> 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文