我有以下問題:我做參數測試,併爲每個參數組合創建一個新對象,該對象由其他參數創建的下一個對象替換。該對象具有屬性jaccard係數和屬性ID。在每一步我想存儲對象的jaccard係數。最後,我想要十大jaccard coeefcient和他們相應的ID。Python:存儲前十個數字的最佳方法
r=["%.2f" % r for r in np.arange(3,5,1)]
fs=["%.2f" % fs for fs in np.arange(2,5,1)]
co=["%.2f" % co for co in np.arange(1,5,1)]
frc_networks=[]
bestJC = []
bestPercent = []
best10Candidates = []
count = 0
for parameters in itertools.product(r,fs,co):
args = parser.parse_args(["path1.csv","path2.csv","--r",parameters[0],"--fs",parameters[1],"--co",parameters[2]])
if not os.path.isfile('FCR_Network_Coordinates_ID_{}_r_{}_x_{}_y_{}_z_{}_fcr_{}_co_{}_1.csv'.format(count, args.r, args.x, args.y, args.z, args.fs,args.co)):
FRC_Network(count,args.p[0],args.p[1],args.x,args.y,args.z,args.r,args.fs,args.co)
屬性可以通過FRC_Network.ID和FRC_Network.JC
我缺少的東西要麼就乾脆列表進行排序,然後第一後斬去什麼十個要素是否有訣竅? (注意:這是對數更多的工作比絕對必要的,但我敢肯定你可以負擔得起。) – 5gon12eder
是的,我可以排序jaccard coeeficient列表和砍掉它,但我需要的索引獲得相應的ID在IDS列表。 – Varlor
我不打算保留整個列表。我會使用['heapq.heappushpop()'](https://docs.python.org/2/library/heapq.html#heapq.heappushpop)來維持'for'循環迭代的十個最大值。這樣,從來沒有一個值得擔心的巨大名單。 –