Как перемешать два списка одинаково?

Это у нас до начала программы

a = [1, 2, 3, 4]
b = ['a', 'b', 'v', 'g']

Идет перемешивания и должно получиться:

a = [3, 4, 1, 2]
b = [‘v’, ‘g’, ‘a’, ‘b’]

как бы 1 и 2 привязаны к ‘a’ и ‘b’, также 3 и 4, к ‘v’ и ‘g’. Главное особенность, чтобы они оставались как 2 списка и работали как описано выше.


Ответы (1 шт):

Автор решения: Stanislav Volodarskiy

zip -> random.shuffle -> zip:

import random

a = [1, 2, 3, 4]
b = ['a', 'b', 'c', 'd']

lst = list(zip(a, b))
random.shuffle(lst)
a, b = zip(*lst)

print(a)
print(b)
$ python shuffle.py
(1, 3, 2, 4)
('a', 'c', 'b', 'd')
→ Ссылка