Вы можете использовать shuffle
для перемешивания списка пользователей;
from random import shuffle
teams = ['USA', 'England', 'India']
users = ['Mark', 'Sean', 'Sri']
shuffle(users)
print([(t,u) for t,u in zip(teams, users)])
Чтобы назначить игроку несколько команд, вы можете использовать iter()
, чтобы убедиться, что нет дубликатов.
from random import shuffle
teams = ['USA', 'England', 'India','France', 'Brazil', 'Australia']
users = ['Mark', 'Sean', 'Sri']
shuffle(teams)
teams_iter = iter(teams)
print([(u,(t1,t2)) for u,t1,t2 in zip(users, teams_iter, teams_iter )])
Шри - США, ИНДИЯ, Марк - Бразилия, Франция, Себ - Германия, Австралия
Я отредактирую свой ответ, чтобы включить это тоже.
В случайном модуле используйте выбор
from random import choice
choice(['USA','England','India'])
'India'
Для фрейма данных пользователей вы можете использовать лямбда, чтобы получить случайный выбор для каждого пользователя:
df.apply (lambda x: choice(['USA','England','India']))
Вот возможное решение
from random import randrange
User = ['Mark', 'Sean', 'Sri']
Team = ['USA', 'England', 'India']
_range = len(User)
new_list = []
while len(new_list) != _range:
try:
rr = randrange( len(Team) );
new_list.append( [Team.pop(), User.pop( rr ) ] )
except:
""
print(new_list)
Круто! Большое спасибо за быстрый ответ, только еще один вопрос: как назначить две команды из списка команд каждому пользователю из списка пользователей, не имея дублирующих команд, я имею в виду уникальные команды для пользователя.