3

インスタンスのリストがあり、そのリストから各インスタンスの特定の属性を抽出して、新しいリストを作成する必要があります。私は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]
4

2 に答える 2