gpt4 book ai didi

Python:将嵌套列表转换为具有坐标位置的简单列表

转载 作者:行者123 更新时间:2023-11-30 23:49:50 25 4
gpt4 key购买 nike

我目前正在学习 python 和 panda3d。我有一个嵌套列表,需要将其转换为坐标列表。

我的输入是

    [['g,g', 'g,g'], ['d,d', 'd,d,d', 'd,d], ['s,s', 's,s']]

我需要的输出是另一个列表:

    [(0,0,0,'s'),(0,1,0,'s'),(1,0,0,'s'),(1,1,0,'s'),(0,0,1,'d'),(0,1,1,'d'),(1,0,1,'d'),(1,1,1,'d'),(1,2,1,'d'),(2,0,1,'d'),(2,1,1,'d'),(0,0,2,'g'),(0,1,2,'g'),(1,0,2,'g'),(1,1,2,'g')]

这个简单的列表转换正在扰乱我的大脑。 o.0

编辑:更多信息:在输入列表中,最后一个嵌套列表代表基础层。

这个想法是将我在文件中写入的字符串转换为坐标点。这是文件的内容:

    [LVL02]
g,g
g,g
[/LVL02]
[LVL01]
d,d
d,d,d
d,d
[/LVL01]
[LVL00]
s,s
s,s
[/LVL00]

这应该给我一个非常基本的 map 制作器。每个级别都是一个平坦的二维表面。

    [LVL02]
g,g (0,0,2,'g'),(0,1,2,'g')
g,g (1,0,2,'g'),(1,1,2,'g')
[/LVL02]
[LVL01]
d,d (0,0,1,'d'),(0,1,1,'d')
d,d,d (1,0,1,'d'),(1,1,1,'d'),(1,2,1,'d')
d,d (2,0,1,'d'),(2,1,1,'d')
[/LVL01]
[LVL00]
s,s (0,0,0,'s'), 0,1,0,'s')
s,s (1,0,0,'s'),(1,1,0,'s')
[/LVL00]

即。 (x轴,y轴,z轴,类型)

最佳答案

可能是这样的:

l = [['g,g', 'g,g'], ['d,d', 'd,d,d', 'd,d'], ['s,s', 's,s']]
output = [ (x, y, z, v) for z, l1 in enumerate(l[::-1]) for y, l2 in enumerate(l1) for x, v in enumerate(l2.split(',')) ]

...但是正如它所写的那样,尚不清楚规则到底是什么。在嵌套循环中:

output = []
for z,l1 in enumerate(l[::-1]):
for y, l2 in enumerate(l1):
for x, v in enumerate(l2.split(',')):
output.append((x, y, z, v))

关于Python:将嵌套列表转换为具有坐标位置的简单列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7471055/

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