Как сортировать рандомный список?
Всем привет. Юзер вводит определенные данные из которых создается список. Но вводит их в рандомном порядке. Например, получается список:
['name', 'age', 'id ', 'hobbies']
А мне в итоге нужно отсортировать этот список так, чтобы получилось:
['id', 'name', 'age', 'hobbies']
Я сделал так, чтобы это сортировалось циклом for, создавая при этом новый список. Но мне кажется, что это костыльный способ. Может есть что-то проще?
PS: Извиняюсь, что без кода (с телефона пишу) Но, надеюсь, проблема понятна
Ответы (1 шт):
Автор решения: Namerek
→ Ссылка
from random import shuffle
a = ['name', 'age', 'id', 'hobbies']
def sort_key(val):
return {
'id': 0,
'name': 1,
'age': 2,
'hobbies': 3
}.get(val)
for _ in range(10):
shuffle(a)
print(a)
a.sort(key=sort_key)
print(a)
print('-------------------------')
['age', 'hobbies', 'id', 'name']
['id', 'name', 'age', 'hobbies']
-------------------------
['name', 'id', 'age', 'hobbies']
['id', 'name', 'age', 'hobbies']
-------------------------
['id', 'hobbies', 'age', 'name']
['id', 'name', 'age', 'hobbies']
-------------------------
['name', 'hobbies', 'id', 'age']
['id', 'name', 'age', 'hobbies']
-------------------------
['id', 'hobbies', 'age', 'name']
['id', 'name', 'age', 'hobbies']
-------------------------
['name', 'id', 'hobbies', 'age']
['id', 'name', 'age', 'hobbies']
-------------------------
['age', 'name', 'id', 'hobbies']
['id', 'name', 'age', 'hobbies']
-------------------------
['id', 'age', 'hobbies', 'name']
['id', 'name', 'age', 'hobbies']
-------------------------
['age', 'hobbies', 'name', 'id']
['id', 'name', 'age', 'hobbies']
-------------------------
['age', 'id', 'hobbies', 'name']
['id', 'name', 'age', 'hobbies']
-------------------------