我想將我的列表保存爲編號變量。保存編號變量
myList =[1,2,3,4,5]
,我想救是這樣的:
numb1 = myList[1]
numb2 = myList[2]
numb3 = myList[3]
numb4 = myList[4]
numb5 = myList[5]
我不想做手工,因爲myList中包含了很多元素。 你能給我個建議嗎?
我想將我的列表保存爲編號變量。保存編號變量
myList =[1,2,3,4,5]
,我想救是這樣的:
numb1 = myList[1]
numb2 = myList[2]
numb3 = myList[3]
numb4 = myList[4]
numb5 = myList[5]
我不想做手工,因爲myList中包含了很多元素。 你能給我個建議嗎?
你可以簡單地通過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
>>>
當然,仍然存在d ['numb10']是否比myList [9]有優勢的問題。 –
@JayanthKoushik:我認爲這是一個OP的錯字,然而'numb5 = myList [5]'在這種情況下會引發錯誤,正如湯姆在評論中所說的那樣。我確定OP要''numb5 = myList [4]''給出'numb5 == 5'。另外'numb1 = myList [0]'給出'numb1 == 1'。 –
@JayanthKoushik - 確實,這樣做沒有優勢。只有缺點。引用一系列同類對象是「列表」的全部內容。 – TigerhawkT3
這是一個XY Problem中的問題X(即,指到list
中的元素)比問題Y更容易(即創建一系列對應於list
中元素的編號變量)。最重要的是,這樣做會破壞使用list
的全部目的。對所顯示的五個元素進行硬編碼並不需要太長的時間,但您提到的具有「多個元素」的list
應該給而不是進行這種處理。
A list
擁有幾個對象,通常是同類型和目的,如一年中每一天的降雨英寸。這個數據結構可以很容易地將所有這些對象存儲和處理在一起。您也可以通過索引單獨引用它們。
如果您希望將myList
的第一個元素指定爲numb1
,請改爲使用myList[0]
。這是您已經爲該對象提供的參考。你做不是需要用一堆編號的參考來污染命名空間。 list
類型專門用於這種情況。請使用list
。
你會遇到的一個問題是,Python列表索引從0開始,而不是1。因此,在你的例子中,你忽略了第一個元素'myList [0]',你會得到一個索引超出嘗試訪問不存在的mylist [5]'時發生的範圍錯誤。 –
「我想將我的列表保存到編號變量。」這打破了'list'類型的_entire purpose_。 – TigerhawkT3
我甚至不能關閉它作爲[「變量變量」](http://stackoverflow.com/questions/1373164/how-do-i-do-variable-variables-in-python)的重複,因爲至少那個人想要使用不同的名字。然而,這只是一個虛假的「列表」。沒有理由做任何這樣的事情。使用「列表」。 – TigerhawkT3