将列表的第 k 个元素分配给 'obj_k'

assigning kth elemnt of a list to 'obj_k'

我正在使用 Python 2.7。给定一个包含 n 个对象的列表,我想将变量 'obj_k' 分配给列表的第 k 个元素。

例如给定列表

mylist = [1,'car', 10]

我正在寻找一种方法来为我执行以下操作

obj_0 = 1
obj_1 = 'car'
obj_2 = 10

这看起来很基础,但我不知道该怎么做。从道德上讲,我正在考虑

for i in range(len(mylist)): obj_i = mylist[i]

这显然在语法上是无效的。

我不确定动态创建变量是否是个好主意,但这就是您想要的。如果我是你,我可能会使用字典来存储变量以避免污染命名空间。

In [1]: mylist = [1,'car', 10]

In [2]: print obj_1
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-2-2f857dd36a40> in <module>()
----> 1 print obj_1

NameError: name 'obj_1' is not defined

In [3]: for i,c in enumerate(mylist):
   ...:     globals()['obj_'+str(i)] = c
   ...:     

In [4]: obj_1
Out[4]: 'car'