2015-12-15 36 views
2

我想將我的列表保存爲編號變量。保存編號變量

myList =[1,2,3,4,5] 

,我想救是這樣的:

numb1 = myList[1] 
numb2 = myList[2] 
numb3 = myList[3] 
numb4 = myList[4] 
numb5 = myList[5] 

我不想做手工,因爲myList中包含了很多元素。 你能給我個建議嗎?

+1

你會遇到的一個問題是,Python列表索引從0開始,而不是1。因此,在你的例子中,你忽略了第一個元素'myList [0]',你會得到一個索引超出嘗試訪問不存在的mylist [5]'時發生的範圍錯誤。 –

+3

「我想將我的列表保存到編號變量。」這打破了'list'類型的_entire purpose_。 – TigerhawkT3

+0

我甚至不能關閉它作爲[「變量變量」](http://stackoverflow.com/questions/1373164/how-do-i-do-variable-variables-in-python)的重複,因爲至少那個人想要使用不同的名字。然而,這只是一個虛假的「列表」。沒有理由做任何這樣的事情。使用「列表」。 – TigerhawkT3

回答

2

你可以簡單地通過enumerate()做到這一點:

>>> myList =[1,2,3,4,5,6,7,8,9,10] 
>>> for index, value in enumerate(myList, start=1): 
...  globals()['numb'+str(index)] = value 
...  
... 
>>> numb1 
1 
>>> numb2 
2 
>>> numb3 
3 
>>> numb10 
10 
>>> 

但我建議你使用另一個字典而不是globals()

>>> myList =[1,2,3,4,5,6,7,8,9,10] 
>>> d = {} 
>>> for index, value in enumerate(myList, start=1): 
...  d['numb'+str(index)] = value 
...  
... 
>>> d['numb1'] 
1 
>>> d['numb2'] 
2 
>>> d['numb10'] 
10 
>>> 
+0

當然,仍然存在d ['numb10']是否比myList [9]有優勢的問題。 –

+0

@JayanthKoushik:我認爲這是一個OP的錯字,然而'numb5 = myList [5]'在這種情況下會引發錯誤,正如湯姆在評論中所說的那樣。我確定OP要''numb5 = myList [4]''給出'numb5 == 5'。另外'numb1 = myList [0]'給出'numb1 == 1'。 –

+0

@JayanthKoushik - 確實,這樣做沒有優勢。只有缺點。引用一系列同類對象是「列表」的全部內容。 – TigerhawkT3

1

這是一個XY Problem中的問題X(即,指到list中的元素)比問題Y更容易(即創建一系列對應於list中元素的編號變量)。最重要的是,這樣做會破壞使用list的全部目的。對所顯示的五個元素進行硬編碼並不需要太長的時間,但您提到的具有「多個元素」的list應該給而不是進行這種處理。

A list擁有幾個對象,通常是同類型和目的,如一年中每一天的降雨英寸。這個數據結構可以很容易地將所有這些對象存儲和處理在一起。您也可以通過索引單獨引用它們。

如果您希望將myList的第一個元素指定爲numb1,請改爲使用myList[0]。這是您已經爲該對象提供的參考。你做不是需要用一堆編號的參考來污染命名空間。 list類型專門用於這種情況。請使用list