Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.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_Lambda - Fatal编程技术网

Python 从列表中的对象收集值

Python 从列表中的对象收集值,python,lambda,Python,Lambda,我有一个由自定义类的对象组成的列表,例如: class myClass: pass myList=[] for i in range(100): myObj=myClass() myObj.prop1=i myObj.prop2=i*i myList.append(myObj) 现在我想把这些对象的某些属性的所有值收集到单独的列表中;现在我这样做: myValuesList = [] for obj in myList: myValuesList.a

我有一个由自定义类的对象组成的列表,例如:

class myClass:
    pass

myList=[]

for i in range(100):
    myObj=myClass()
    myObj.prop1=i
    myObj.prop2=i*i
    myList.append(myObj)
现在我想把这些对象的某些属性的所有值收集到单独的列表中;现在我这样做:

myValuesList = []
for obj in myList: myValuesList.append(obj.prop1)
有更好/更快的方法吗?与
map
lambda
有关的内容?

operator.attrgetter
map
可能更快:

myValueList = map(operator.attrgetter('prop1'), myList)  # use list(map(...)) in python3.x

同样,如果OP可以在
myClass
中定义
\uuuuu init\uuuuu
方法,那么第一个循环也可以替换为LC。谢谢!然而,第二个变量对我来说还不清楚:当我运行
myValueList=list(map(operator.attrgetter('prop1'),myList))
(我在Python 3上),我得到一个错误
NameError:name“operator”未定义
@VasilyA:
import operator
myValueList = map(operator.attrgetter('prop1'), myList)  # use list(map(...)) in python3.x