2015-04-08 89 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

相關問題