Python 如何为列表中所有对象的属性添加值
我在和一些问题斗争。假设我们有一个对象:Python 如何为列表中所有对象的属性添加值,python,Python,我在和一些问题斗争。假设我们有一个对象: class A: def __init__(self): self.value = value 然后,我们创建几个对象并将它们添加到列表中: for obj in range(10): L.append(A()) 然后我想给列表中所有对象的属性添加值 当我们只创建一个函数时,这很容易: def add(self, List): for objs in List: objs.value += 1
class A:
def __init__(self):
self.value = value
然后,我们创建几个对象并将它们添加到列表中:
for obj in range(10):
L.append(A())
然后我想给列表中所有对象的属性添加值
当我们只创建一个函数时,这很容易:
def add(self, List):
for objs in List:
objs.value += 1
,但我正在寻找更好的方法。我尝试过lambda和列表理解,类似这样:
add = lambda some_list: [obj.value+1 for obj in some_list]
,但这根本不起作用
你知道如何用蟒蛇的方式解决这个问题吗?谢谢 您可以使用和来编写:
add = functools.partial(map, lambda obj : obj.value + 1)
一旦创建了对象列表“L”,下面的代码对我很有用
[obj.value += 1 for obj in L]
现在“L”中每个对象的属性都将有递增的值不,没有更干净的方法来实现这一点。您需要执行赋值,这是Python中的一条语句。因此,您不能将其内联。你最好的选择是使用for-loop。为了对现有列表中的元素执行“更好”的操作,你准备以何种方式创建一个列表?你所说的“但它根本不起作用”是什么意思?有错误吗?
def
是Pythonic的方式——清晰、简单、明确。