Преобразование массивов в списки и создание словарей со значениями индекса (это предполагает, что два массива не будут иметь значения в одной позиции индекса). Затем вы можете объединить их и вывести результат в виде маскированного массива или списка:
def combine_grades(passed, failed):
# Put index:value for each list into a dictionary
pass_dict = {list(passed).index(i):i for i in list(passed) if i != '--'}
fail_dict = {list(failed).index(i):i for i in list(failed) if i != '--'}
# Combine those dictionaries
full_dict = {**pass_dict, **fail_dict}
# Return a masked array (if that's what you want. Otherwise, just return the list)
return ma.array([full_dict[i] for i in sorted(full_dict)])
Тогда звоните:
combine_grades(grades_passed, grades_not_passed)
Выход:
masked_array(data=[ 90, 54, 88, 62, 34, 100],
mask=False,
fill_value=999999)