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的方式——清晰、简单、明确。