我有一個實例列表,我需要從該列表中提取每個實例的某個屬性,這將形成一個新列表。我對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
例如,帶有屬性 '名稱' 類 '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]
我會重命名'list'。它會影響內建的'list'函數。 – Blender
好的。我從OP的代碼複製/粘貼,沒有注意到。現在修復。 – jpmc26