我有一个由自定义类对象组成的列表,例如:
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
有什么关系?
答案 0 :(得分:1)
List comprehensions tend to be faster:
myValueList = [obj.prop1 for obj in myList]
带有operator.attrgetter
的 map
可能会更快:
myValueList = map(operator.attrgetter('prop1'), myList) # use list(map(...)) in python3.x