Den*_*niz 1 python methods class list map
假设我有一个列表X = [a,b,c],其中a,b,c是同一个类C的实例.现在,所有这些实例a,b,c都有一个名为v,av,bv,cv的变量...我只想要一个清单Y = [av,bv,cv]
有一个很好的命令来做到这一点?我能想到的最好的方法是:
Y = []
for i in X
Y.append(i.v)
Run Code Online (Sandbox Code Playgroud)
但它似乎并不优雅〜因为这需要重复任何给定的"v"任何建议?我无法找到一种方法来使用"map"来做到这一点.
列表理解是要走的路.
但是你也说过你不知道如何使用map来做到这一点.现在,我根本不建议使用map它,但它可以完成:
map( lambda x: x.v, X)
Run Code Online (Sandbox Code Playgroud)
也就是说,您创建一个匿名函数(lambda)来返回该属性.
如果您更喜欢使用python库方法(了解您的工具......),那么类似于:
map(operator.attrgetter("v"),X)
Run Code Online (Sandbox Code Playgroud)
也应该工作.