Python:修改列表中每个对象的一个属性

Python:修改列表中每个对象的一个属性,python,list,oop,iteration,Python,List,Oop,Iteration,我的问题是基本的,可能是重复的,但我还没有找到答案 我正在寻找一种最有效的(pythonic)方法,将1添加到给定列表中所有对象的属性x class Any(object): def __init__(self, x): self.x = x l = [Any(1), Any(-3), Any(1), Any(4), Any(6), Any(7), Any(3)] 是否有比以下更好的解决方案(例如使用列表理解): 代码没有问题,但如果您想在理解中使用它,请添加一个“增量”

我的问题是基本的,可能是重复的,但我还没有找到答案

我正在寻找一种最有效的(pythonic)方法,将1添加到给定列表中所有对象的属性
x

class Any(object):
   def __init__(self, x):
       self.x = x

l = [Any(1), Any(-3), Any(1), Any(4), Any(6), Any(7), Any(3)]
是否有比以下更好的解决方案(例如使用列表理解):


代码没有问题,但如果您想在理解中使用它,请添加一个“增量”方法:


你的方式是完美的蟒蛇式。

你的方式是完美的蟒蛇式。哈哈好的!来自R,我习惯了对
循环的惊吓!我想,你可以写下你的评论作为回答。谢谢。通常,当有副作用(例如修改对象)时,应该避免使用列表理解。你的方式很好。我认为以任何其他方式编写它可能会比它的价值更麻烦:)for循环是一种方式。这里唯一的缺点是使用
l
作为变量名
for i in l:
    i.x += 1
def inc(self, amount=1):
    self.x += amount
    return self