将列表的第 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'
我正在使用 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'