address_list = a[1].split(‘\n‘) len = address_list.__len__() #print(len) addr_list = [] # 需要接着这个列表做处理 addr_span_list = [] for li in address_list[0:len-1]: ll = li.split(‘ ‘) addr_list.append(int(ll[-3],16)) addr_list.append(int(ll[-2],16)) addr_span_list.append(int(ll[-1],16)) max_num_index_list = list(map(addr_span_list.index, heapq.nlargest(len-1, addr_span_list))) remain = 0x19b0 j = 0 for i in max_num_index_list: j = j + 1 remain = remain - addr_span_list[i] if remain <= 0: break self.free_slots = j if(j <= 1): a = sorted(max_num_index_list[0:1]) k = a[0] self.unWidget2.lineEdit.setText(str(hex(addr_list[k*2 + 1] - addr_span_list[k] - remain))) self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k*2 + 1]))) elif(j <= 2): a = sorted(max_num_index_list[0:2]) k = a[0] self.unWidget2.lineEdit.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k]))) self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k * 2 + 1]))) k = a[1] self.unWidget2.lineEdit_3.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k] - remain))) self.unWidget2.lineEdit_4.setText(str(hex(addr_list[k * 2 + 1]))) elif(j <= 3): a = sorted(max_num_index_list[0:3]) k = a[0] self.unWidget2.lineEdit.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k]))) self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k * 2 + 1]))) k = a[1] self.unWidget2.lineEdit_3.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k]))) self.unWidget2.lineEdit_4.setText(str(hex(addr_list[k * 2 + 1]))) k = a[2] self.unWidget2.lineEdit_5.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k] - remain))) self.unWidget2.lineEdit_6.setText(str(hex(addr_list[k * 2 + 1]))) elif(j <= 4): a = sorted(max_num_index_list[0:4]) k = a[0] self.unWidget2.lineEdit.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k]))) self.unWidget2.lineEdit_2.setText(str(hex(addr_list[k * 2 + 1]))) k = a[1] self.unWidget2.lineEdit_3.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k]))) self.unWidget2.lineEdit_4.setText(str(hex(addr_list[k * 2 + 1]))) k = a[2] self.unWidget2.lineEdit_5.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k]))) self.unWidget2.lineEdit_6.setText(str(hex(addr_list[k * 2 + 1]))) k = a[3] self.unWidget2.lineEdit_7.setText(str(hex(addr_list[k * 2 + 1] - addr_span_list[k] - remain))) self.unWidget2.lineEdit_8.setText(str(hex(addr_list[k * 2 + 1]))) else: print(‘空闲块的块数需要大于4!‘)
原文:https://www.cnblogs.com/jiuweideqixu/p/11728601.html