概要
以下のような二重ループを、一重ループで実現する方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
years = [2000, 2010, 2020] seasons = ["Spring", "Summer", "Autumn", "Winter"] for year in years: for season in seasons: print(year, season) # 2000 Spring # 2000 Summer # 2000 Autumn # 2000 Winter # 2010 Spring # 2010 Summer # 2010 Autumn # 2010 Winter # 2020 Spring # 2020 Summer # 2020 Autumn # 2020 Winter |
内包表記による方法
内包表記の中で二重ループを回し、1つのリストを生成する。
1 2 3 4 5 6 7 |
years = [2000, 2010, 2020] seasons = ["Spring", "Summer", "Autumn", "Winter"] lst = [(year, season) for year in years for season in seasons] for year, season in lst: print(year, season) |
itertools.product
による方法
itertools
ライブラリーにあるproduct()
は、引数のリストの各要素の直積を要素とするリストを返す。
1 2 3 4 5 6 7 8 9 |
from itertools import product years = [2000, 2010, 2020] seasons = ["Spring", "Summer", "Autumn", "Winter"] iter = product(years, seasons) for year, season in iter: print(year, season) |