インスタンスのリストがあり、そのリストから各インスタンスの特定の属性を抽出して、新しいリストを作成する必要があります。私はPythonに少し慣れていません。これを解決できる唯一の方法は、 exec() 関数を使用することであり、明らかに恐ろしい解決策になります。誰かがより良い方法を知っていますか?
私の現在の機能は次のとおりです。
def attributelist(list, attribute):
"Inputs a list of instances and returns a list of a certain attribute of those instances"
output = []
for instance in list:
exec("output.append(instance." + attribute + ")")
return output
たとえば、属性「name」を持つクラス「my_class」を使用すると、次のようになります。
instances = []
for i in range(10):
instances.append(my_class(i))
attributelist(instances, 'name')
Out: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]