Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 一行用于对象修改的循环_Python_Python 2.7 - Fatal编程技术网

Python 一行用于对象修改的循环

Python 一行用于对象修改的循环,python,python-2.7,Python,Python 2.7,我有一个对象数组,其中每个对象都有一个search\u order属性。 我将遍历数组,并将所有对象的属性增加1 这是一个简单的方法: res = [] for r in array: r.search_order+=1 res.append(r) return iter(res) 是否有一行for循环可以实现这一点 return (r.search_order+=1 for r in array) 不幸的是,它似乎不起作用。您不能在生成器表达式或列表理解中使用赋值(它将引

我有一个对象数组,其中每个对象都有一个
search\u order
属性。 我将遍历数组,并将所有对象的属性增加1 这是一个简单的方法:

res = []
for r in array:
    r.search_order+=1
    res.append(r)
return iter(res) 
是否有一行
for
循环可以实现这一点

return (r.search_order+=1 for r in array)

不幸的是,它似乎不起作用。

您不能在生成器表达式或列表理解中使用赋值(它将引发
语法错误

而是将属性添加为1并重新指定结果:

old_array=(r.search_order+1 for r in array)

这可能不是一行,但它正确地完成了工作

def incr_search_order(x):
    x.search_order += 1
    return x

retrun map(incr_search_order, array)
<or>
return [incr_search_order(x) for x in array]
def增量搜索顺序(x):
x、 搜索顺序+=1
返回x
重新运行映射(递增搜索顺序,数组)
返回[数组中x的递增搜索顺序(x)]