我想将我的列表保存为编号变量。保存编号变量
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