Цикл с единым преобразованием
В вашей сессии загружен список всех возможных типов покемонов — pokemon_types. Для удобства он выведен в консоль.
Вам нужно собрать все возможные пары типов покемонов. Каждую пару вы хотите хранить в отдельном списке, где первым элементом служит порядковый индекс. Это позволит увидеть общее количество возможных пар и получить пронумерованные метки для каждой из них.
Для решения этой задачи был написан следующий цикл:
enumerated_pairs = []
for i,pair in enumerate(possible_pairs, 1):
enumerated_pair_tuple = (i,) + pair
enumerated_pair_list = list(enumerated_pair_tuple)
enumerated_pairs.append(enumerated_pair_list)
Давайте сделаем этот цикл эффективнее с помощью единого преобразования.
Это упражнение является частью курса
Эффективный код на Python
Инструкции к упражнению
- В вашей сессии загружена функция
combinationsиз модуляitertools. Используйте её, чтобы создать списокpossible_pairs, содержащий все возможные пары типов покемонов (в каждой паре2типа). - Создайте пустой список
enumerated_tuplesперед цикломfor. - Используйте встроенную функцию, чтобы преобразовать каждый кортеж в
enumerated_tuplesв список.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Collect all possible pairs using combinations()
possible_pairs = [*____(pokemon_types, ____)]
# Create an empty list called enumerated_tuples
____ = ____
for i,pair in enumerate(possible_pairs, 1):
enumerated_pair_tuple = (i,) + pair
enumerated_tuples.append(enumerated_pair_tuple)
# Convert all tuples in enumerated_tuples to a list
enumerated_pairs = [*____(____, enumerated_tuples)]
print(enumerated_pairs)