在 for 循环中构造变量
Constructing variables within a for loop
假设我想创建一个 class 的很多实例,但不想为每个实例都写下变量名。
我想要的:
value1 = class(value1)
value2 = class(value2)
.
.
.
我的想法是:
list = ['One','Two','Three']
for value in list:
value = class(value)
结果不是我想要的。 Python 创建变量 'value' 并用列表的值覆盖它。
很抱歉问这么基本的问题,但我不知道该如何处理。
您可以使用列表理解从值列表构建 class 个实例的列表:
class A:
def __init__(self, value):
self.value = value
values = ['One','Two','Three']
instances = [A(v) for v in values]
>>> print(list(o.value for o in instances))
['One', 'Two', 'Three']
首先请注意,您不应该使用 list
作为变量名,因为它被 Python 本身保留为关键字。然后,你可以有另一个列表,比方说 instanceList
,你将在其中附加 class:
的每个新创建的实例
myList = ['One','Two','Three']
instanceList = []
for value in myList:
instanceList.append(class(value))
假设我想创建一个 class 的很多实例,但不想为每个实例都写下变量名。
我想要的:
value1 = class(value1)
value2 = class(value2)
.
.
.
我的想法是:
list = ['One','Two','Three']
for value in list:
value = class(value)
结果不是我想要的。 Python 创建变量 'value' 并用列表的值覆盖它。
很抱歉问这么基本的问题,但我不知道该如何处理。
您可以使用列表理解从值列表构建 class 个实例的列表:
class A:
def __init__(self, value):
self.value = value
values = ['One','Two','Three']
instances = [A(v) for v in values]
>>> print(list(o.value for o in instances))
['One', 'Two', 'Three']
首先请注意,您不应该使用 list
作为变量名,因为它被 Python 本身保留为关键字。然后,你可以有另一个列表,比方说 instanceList
,你将在其中附加 class:
myList = ['One','Two','Three']
instanceList = []
for value in myList:
instanceList.append(class(value))