新手在这里。
假设您想要在不事先知道列表大小的情况下将列表元素分配给变量,您是如何做到的,特别是在Python中?
例如。 list
有5个元素,程序创建5个变量(var1,var2,var3,var4,var5)并为其分配元素。
答案 0 :(得分:5)
也许你应该使用dict
>>> lst = [0, 1, 2, 3, 4]
>>> d = {}
>>> for i, item in enumerate(lst):
... d['var' + str(i)] = item
...
>>> d
{'var4': 4, 'var1': 1, 'var0': 0, 'var3': 3, 'var2': 2}
答案 1 :(得分:2)
如果您要求的内容生效 - 我想要一个0-n元素的列表,但我只想知道元素的值,5,20和67,以及其他一切都应该是默认值,那么你可以使用带有整数键的dict
作为稀疏列表。
d = {}
d[5] = 34.7
d[20] = 68.1
d[67] = 9.13
然后,您可以使用as:
d.get(5, 'default')
# 34.7
d.get(6, 'default')
# default
如果您希望将该词典具体化为列表,那么您可以使用list-comp:
mylist = [d.get(i, 'default') for i in range(max(d))]
print len(mylist), mylist[:10]
# 67 ['default', 'default', 'default', 'default', 'default', 34.700000000000003, 'default', 'default', 'default', 'default']
答案 2 :(得分:0)
您只需创建一个空列表并向其添加任意数量的元素,而无需担心大小。
mylist = [] #empty list, list is not constrained to be any particular size
mylist.append(some_var) #add a variable to list
答案 3 :(得分:0)
我的回答建立在black_dragon的回答之上。我处理列表的方法是他的答案。
由于您希望根据列表中的值创建变量,因此可以使用globals()(用于获取全局符号表的内置函数)来更新全局字典。更新全局符号字典将创建或修改变量。
l = [10, 20, 30]
d = {}
for i,v in enumerate(l):
d ['var'+str(i)] = v
globals().update(d)
print var0
print var1
print var2