2025.10.18(更新日: 2025.10.18)
【Python】mapはfor文で使用すると消費される
はじめに
リストの中身を一括で型変換できるmap。
そのmapオブジェクトをfor文のイテラブルとして使用すると消費されてしまう。
どういうことか?見ていこう。
ソースコード
map.py · ki-hi-ro/python@92037c1
def print_ints(int_iterable):
for x in int_iterable:
print(x)
print("消費された後のリスト:", list(int_iterable))
str_list = ['1', '2', '3', '4', '5']
int_map = map(int, str_list)
print_ints(int_map)
int_list = [int(x) for x in str_list]
print_ints(int_list)
print_ints関数のfor文でイテラブルの中身を出力する。そして、その後のイテラブルのリストを出力する。
str_listには、文字列の数字が入っている。
int_mapは、str_listの各要素をint型に変換している。
int_listも同じことをリスト内包表記で行っている。
出力結果
1
2
3
4
5
消費された後のリスト: []
1
2
3
4
5
消費された後のリスト: [1, 2, 3, 4, 5]
mapオブジェクトの場合は、for文で各要素が消費されてしまっている。
1
2
3
4
5
消費された後のリスト: []
リスト内包表記の場合は、for文を使用しても各要素が消費されることはない。
1
2
3
4
5
消費された後のリスト: [1, 2, 3, 4, 5]
コメントを残す