2015-04-08 31 views
0

我有在Python坐标可与清单列表这个空间的问题:如何在Python 2.7中自动分配项目中的变量?

mList = [[0,0,0],[1000,0,600]],\ 
[[]],\ 
[[1000,1000,120]],\ 
[[0,0,0],[3000,4000,300],[3000,4000,720],[0,0,1020]],\ 
[[150,0,0],[1000,0,360], [4000,4000,660],[4000, 4000, 960], 
[100,0,1320]] 

我需要自动变量分配给每个之前的项目。例如,distance1 = [[0,0,0],[1000,0,600]], distance2=[[]], distance3= [[1000,1000,120]]等。但是,这需要为每个distance'n'自动执行,而不是从mList获取索引并将它们分配给变量distance'n'。

回答

0

顺便说一句:mList是一个元组,如果你将这个批次放在() s中,你可以避免连续行。

我不明白为什么你需要他们作为变量,但如果你需要的是能够通过名称distanceN引用他们的字典可能就足够了:

>>> data = {'distance{}'.format(i+1): d for i, d in enumerate(mList)} 
>>> print(data['distance1']) 
[[0, 0, 0], [1000, 0, 600]] 
+0

我不能纵容以这种方式使用'locals()',然而,字典方法是可以的。或者你可以把它作为一个列表并通过索引访问,而不需要任何工作。 – mhawke

+1

这种方式修改'locals()'[有关文档特别禁止](https://docs.python.org/2/library/functions.html#locals),这样的修改实际上不会影响函数的局部变量。尝试一下! 'def demo():x = 1; locals()['x'] = 2;打印x' – user2357112

+0

删除本地化()的更新答案...更新globals()没有相同的警告。顺便说一句,它不是禁止它只是不能保证工作 - 虽然它确实是我的环境。 – AChampion

相关问题