bagaimana cara seleksi data dari list yang sudah ada ?

Jika Indonesia hanya bisa mengirim maksimal 14 pemain, buatlah sebuah program yang bisa menyeleksi pemain berdasarkan jumlah perolehan medali.


Ouput yang diharapkan:


Pemain yang layak bergabung dalam Tim Sudirman Cup Indonesia = [list pemain yg layak] Pemain yang kurang layak bergabung dalam Tim Sudirman Cup Indonesia = [list pemain yg kurang layak]

pemain_dan_medali = [
  [7, "Ginting"], [5, "Jonathan C."],
  [9," Hendra"], [9," Ahsan"],
  [8, "Markus"], [8, "Kevin"],
  [4, "Gregoria"], [6, "Praven"],
  [6, "Melati"], [7, "Greysia"],
  [7, "Apriani"], [5, "Putri"],
  [5, "Rian"], [5, "Fajar"],
  [2, "Rio"], [5,"Dewi]

]

avatar diraleosinaga

@diraleosinaga

1 Kontribusi 0 Poin


Jawaban

"""
pertama buat fungsi 'sort' untuk menyutir 
perolehan mendali (semakin banyak mendali semakin layak)
dari yg terbanyak ke yg paling sedikit.

Lalu 'slice' listnya dengan maximal jumlah
pemain yg boleh dikirim, untuk mendapatkan
list pemain yg layak dn yg kurang layak
"""

pemain_dan_medali = [
  [7, "Ginting"], [5, "Jonathan C."],
  [9," Hendra"], [9," Ahsan"],
  [8, "Markus"], [8, "Kevin"],
  [4, "Gregoria"], [6, "Praven"],
  [6, "Melati"], [7, "Greysia"],
  [7, "Apriani"], [5, "Putri"],
  [5, "Rian"], [5, "Fajar"],
  [2, "Rio"], [5,"Dewi"]
]

def sort(list):
  # sort berdasarkan jumlah mendali dari yn paling banyak
  # disini saya pake 'selection-sort' algorithm
  for i in range(1, len(list)):
    key = list[i]
    j = i - 1
    while j >= 0 and key[0] > list[j][0]:
      list[j + 1] = list[j]
      j -= 1
      
    list[j + 1] = key
    
sort(pemain_dan_medali)

def seleksi_pemain(list_pemain, max):
  return list_pemain[:max], list_pemain[max:]
  
pemain_layak, pemain_kurang_layak = seleksi_pemain(pemain_dan_medali, 14)

print("pemain yang layak: ", pemain_layak, "\n")
print("pemain yang kurang layak: ", pemain_kurang_layak)
avatar iqballatifa

@iqballatifa

1 Kontribusi 0 Poin


Login untuk gabung berdiskusi