将列表中的项目按顺序与另一个项目进行比较,然后在VPython应用程序中逐个使用

将列表中的项目按顺序与另一个项目进行比较,然后在VPython应用程序中逐个使用,python,python-2.7,list,vpython,Python,Python 2.7,List,Vpython,我在Vpython中创建了由以下代码创建的对象网格: iX = [(x - pointW // 2) * sclFact for x in range(pointW)] iY = [(x - pointH // 2) * sclFact for x in range(pointH)] iYr = iY[::-1] xy = list(itertools.product(iX,iYr,)) ixyz = np.array(list(itertools.product(iX,iYr,[-0.0]))

我在Vpython中创建了由以下代码创建的对象网格:

iX = [(x - pointW // 2) * sclFact for x in range(pointW)]
iY = [(x - pointH // 2) * sclFact for x in range(pointH)]
iYr = iY[::-1]
xy = list(itertools.product(iX,iYr,))
ixyz = np.array(list(itertools.product(iX,iYr,[-0.0])))
for element in ixyz:
        cube = box(pos = element,
               size=( .1, .1, .1 ),)
ixyz列表打印将如下所示:

[[-0.5  0.  -0. ]
 [-0.5 -0.5 -0. ]
 [ 0.   0.  -0. ]
 [ 0.  -0.5 -0. ]
 [ 0.5  0.  -0. ]
 [ 0.5 -0.5 -0. ]]
我还有一个列表,z值有时会改变,在某些输入上,它总是更新的,它看起来是这样的

[[-0.5        0.        -0.       ]
 [-0.5       -0.5       -0.       ]
 [ 0.         0.        -0.       ]
 [ 0.        -0.5       -0.       ]
 [ 0.5        0.        -2.3570226]
 [ 0.5       -0.5       -0.       ]]
[(-0.5,0.0,-0.0),(-0.5,-0.5,-0.0),...(0.5,-0.5,-0.0)]
我想根据新列表移动对象,我尝试了不同的验证,但没有成功,它总是查看第二个列表中的最后一项

while True:
  .... some code here (the one getting the new list)
  ...
  ...
  # then I added this:
      for obj in scene.objects: 
        if isinstance(obj, box):
            for i in xyz: # xyz is the new list
                if obj.pos != i:
                   obj.pos = i
此变化将使所有框成为一个框,并根据列表中的最后一个位置移动

我做错了什么,或者有别的方法吗? 或者我应该改变创建对象并移动它们的整个过程吗? 我对VPython和python本身都是新手

编辑 我修复了这两个列表,以便更好地像这样呈现

[[-0.5        0.        -0.       ]
 [-0.5       -0.5       -0.       ]
 [ 0.         0.        -0.       ]
 [ 0.        -0.5       -0.       ]
 [ 0.5        0.        -2.3570226]
 [ 0.5       -0.5       -0.       ]]
[(-0.5,0.0,-0.0),(-0.5,-0.5,-0.0),...(0.5,-0.5,-0.0)]

您正在重复设置更新位置列表中每个元素的位置:

box.pos = 1
box.pos = 2
box.pos = 3 
您需要设置一次位置;因此,计算一个索引:

i = 0
for obj....
    if isinstance  ...
         obj.pos = xyz [i]
         i += 1
谢谢你,它似乎有效(我认为有一些问题)。我试图修复列表,使其更好地呈现在上面的编辑中,然后它就可以工作了。一开始,我不理解你的答案,直到我开始学习一些关于索引的知识,也就是在我修复了我的列表之后。