[英]How to make a list out of the attribute of objects from a DataFrame column?
[英]Make a list of attribute from a list of objects
我正在嘗試制定遺傳算法,並收集適應度函數的值,所以我制作了一個類對,以便可以使用lambda函數進行排序。 該類很簡單,只是這樣:
class Par(object):
def __init__(self,cromosoma,valoracion):
self.cromosoma=cromosoma
self.valoracion=valoracion
def __str__(self):
return ("Cromosoma: {0}\nTiene valoracion: {1}".format(self.cromosoma,self.valoracion))
def __repr__(self):
return ("Cromosoma: {0}\nTiene valoracion: {1}".format(self.cromosoma,self.valoracion))
所以在我用這個排序了染色體列表之后:
poblacionOrdenada=sorted(evaluacion, key=lambda par: par.valoracion, reverse=False)
我想選擇50%的最佳值,但我想接收的功能只是染色體而不是對對象。 那么,如何獲得不帶for的僅染色體列表呢? 也許與另一個lambda函數?
我不想使用for,因為我必須在不同的功能中選擇幾次。
產生僅具有列表理解的cromosoma
屬性的列表:
[par.cromosoma for par in poblacionOrdenada]
一旦有了該列表,就可以將其用於各種不同的函數調用。
要從排序列表中選擇菌株的前50%的染色體,請執行以下操作:
answer = [strain.cromosoma for strain in poblacionOrdenada[:len(poblacionOrdenada)/2]]
編輯:(由於我缺乏領域知識)
如果最好的50%菌株在列表的末尾,請用[len(poblacionOrdenada)/2:]
切換[:len(poblacionOrdenada)/2]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.