Почему-то ваш вопрос требует использования map
. Трудно помочь с этим вопросом, не дав прямого ответа, особенно потому, что эти виды манипуляций являются однострочными. Для начала используйте карту и диапазон, чтобы получить список случайных чисел в нужном диапазоне:
>>> nums = map(lambda x : random.randint(0,7), range(50))
>>> nums
[6, 6, 2, 4, 7, 6, 6, 7, 1, 4, 3, 2, 6, 1, 1, 2, 2, 0, 7,
3, 6, 1, 5, 2, 1, 2, 6, 0, 3, 0, 2, 6, 0, 6, 3, 5, 0, 7,
2, 5, 4, 1, 0, 0, 1, 4, 3, 3, 0, 3]
Заметьте, что аргумент лямбда, x
не используется. Это как минимум одна из причин, по которой я бы не использовал здесь карту. Затем, используя список чисел, сопоставьте функцию индексации с числами, чтобы получить список цветов:
>>> cols = map(lambda i: colour[i], nums)
>>> cols
['white', 'white', 'green', 'purple', 'black', 'white', 'white',
'black', 'blue', 'purple', 'yellow', 'green', 'white',
'blue', 'blue', 'green', 'green', 'red', 'black', 'yellow',
'white', 'blue', 'orange', 'green', 'blue', 'green', 'white',
'red', 'yellow', 'red', 'green', 'white', 'red', 'white',
'yellow', 'orange', 'red', 'black', 'green', 'orange', 'purple',
'blue', 'red', 'red', 'blue', 'purple', 'yellow', 'yellow', 'red',
'yellow']
Ответ, данный soulcheck, используя random.choice()
в понимании списка, безусловно, является лучшим способом определения ответа.