2017-04-22 50 views
0

我有載體檢索列表的對象的名稱在Python

vector1=[1,1] 
vector2=[2,2] 
favoritevector=[1,-1] 

的名單,然後這些載體列表

vectors=[] 
vectors.append(vector1) 
vectors.append(vector2) 
vectors.append(favoritevector) 

vector 
>>vector = [[1,1], [2,2], [1,-1]] 

我怎樣才能找回裏面的對象的名稱列表向量,而不是對象的實際值。

在這種情況下,我想要一些東西,如果我要求列表向量的元素0,函數或命令將名稱「vector1」返回給我,而不是[1,-1]。

在此先感謝您的幫助。

+3

的可能的複製[在運行時獲取Python變量名](http://stackoverflow.com/questions/7168391/getting-python-variable-name-in-runtime) –

+1

基於你想要的最終結果,你應該重新思考你是如何嘗試克全部工作,而是使用字典。使用字典你可以做到:'vectors = {'vector1':[1,2],'vector2':[3,4]}'。然後,你需要做的就是獲得你想要的矢量:'vectors.get('vector1')'。最終,不是試圖獲取存儲每個這些向量的變量的名稱,只是使用字典來存儲所有的東西。 – idjaw

回答

1

我不認爲有一種方法可以使用列表來完成此操作。你可以嘗試這樣的事:

class vector(object): 
    def __init__(self, name, x, y): 
     self.name = name 
     self.x = x 
     self.y = y 

    def __repr__(self): 
     return """<vector {} {}>""".format(self.name, (self.x, self.y)) 

然後,你可以這樣做:

vectors = [] 
vectors.append(vector(name="vector1", x=1, y=2)) 
vectors.append(vector(name="vector2", x=2, y=3)) 
# to get the name of the first vector, do: 
vectors[0].name 
# 'vector1' 
+0

謝謝oliver。隨着課程更容易和方便,但我被要求明確不要使用類......所以。 我很高興知道我打算做什麼是不可能的,會瘋狂readind和看教程。 – haroldmk

0

如果向量的順序並不重要,你可以使用字典

vectors_dict["vector1"] = [1, 1]