fruits = ['watermelon', 'orange', 'pear', 'mango', 'apple', 'grapes']
values = [3, 5, 2, 3, 2, 4]
firsts = ['grapes', 'orange', 'apple']
mapping = dict(zip(fruits, values))
index = dict(map(reversed, enumerate(firsts)))
new_fruits = sorted(fruits, key=lambda k: (index.get(k, float('inf')), k))
new_values = list(map(mapping.get, new_fruits))
print(new_fruits)
print(new_values)
ZnJ1aXRzID0gWyd3YXRlcm1lbG9uJywgJ29yYW5nZScsICdwZWFyJywgJ21hbmdvJywgJ2FwcGxlJywgJ2dyYXBlcyddCnZhbHVlcyA9IFszLCA1LCAyLCAzLCAyLCA0XQpmaXJzdHMgPSBbJ2dyYXBlcycsICdvcmFuZ2UnLCAnYXBwbGUnXQoKbWFwcGluZyA9IGRpY3QoemlwKGZydWl0cywgdmFsdWVzKSkKaW5kZXggPSBkaWN0KG1hcChyZXZlcnNlZCwgZW51bWVyYXRlKGZpcnN0cykpKQpuZXdfZnJ1aXRzID0gc29ydGVkKGZydWl0cywga2V5PWxhbWJkYSBrOiAoaW5kZXguZ2V0KGssIGZsb2F0KCdpbmYnKSksIGspKQpuZXdfdmFsdWVzID0gbGlzdChtYXAobWFwcGluZy5nZXQsIG5ld19mcnVpdHMpKQoKcHJpbnQobmV3X2ZydWl0cykKcHJpbnQobmV3X3ZhbHVlcyk=
['grapes', 'orange', 'apple', 'mango', 'pear', 'watermelon']
[4, 5, 2, 3, 2, 3]