1. はじめに
Pythonのlist()
関数は、イテラブル(繰り返し可能なオブジェクト)をリストに変換するための組み込み関数です。
例えば、文字列を1文字ずつのリストにしたり、タプルやセットをリストに変換することができます。
本記事では、Python初心者〜中級者がlist()
関数を使いこなせるよう、基本的な使い方から応用例、注意点までをわかりやすく解説します。
この記事を読むと、以下のことが分かります。
list()
関数の基本的な使い方- さまざまなデータ型からリストを作成する方法
- 実務や学習で役立つ応用例
- 初心者がつまづきやすい注意点と対策
2. list()関数の基本解説
list()
関数は、Pythonの組み込み関数で、指定されたイテラブルをリストとして返します。
引数を省略すると、空のリスト[]
が作成されます。
2-1. 基本構文
# list() の基本構文
list(iterable)
引数:
iterable
(省略可) – 文字列、タプル、セット、辞書などのイテラブル。
戻り値:
指定されたイテラブルを要素として持つ新しいリスト。
2-2. 基本例
# 文字列をリストに変換
chars = list("Python")
print(chars)
# タプルをリストに変換
tup = (1, 2, 3)
numbers = list(tup)
print(numbers)
# 空のリストを作成
empty_list = list()
print(empty_list)
実行結果:
['P', 'y', 't', 'h', 'o', 'n']
[1, 2, 3]
[]
3. よくある使い方・応用例
ここからは、実務や学習でよく使うlist()
の具体例を紹介します。
3-1. 辞書のキーや値をリストに変換
# 辞書のキーをリストに
person = {"name": "Alice", "age": 25, "city": "Tokyo"}
keys = list(person.keys())
values = list(person.values())
print(keys)
print(values)
実行結果:
['name', 'age', 'city']
['Alice', 25, 'Tokyo']
辞書からキーや値を取得してリスト化するのは、データ加工やCSV出力時によく使います。
3-2. range()からリストを作成
# rangeオブジェクトをリストに変換
nums = list(range(1, 6))
print(nums)
実行結果:
[1, 2, 3, 4, 5]
range()はイテラブルですが、そのままではインデックスアクセスやスライスができない場合もあるため、リスト化して扱うことがあります。
3-3. 集合(set)をリストに変換
# set型をリストに変換
unique_numbers = {3, 1, 2}
num_list = list(unique_numbers)
print(num_list)
実行結果:
[1, 2, 3]
setは順序を持たないため、リスト化するときに順序が保証されない点に注意が必要です。
3-4. map()やfilter()の結果をリストに変換
# map() の結果をリストに
nums = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, nums))
print(squared)
# filter() の結果をリストに
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)
実行結果:
[1, 4, 9, 16]
[2, 4]
4. 注意点・エラー対策
4-1. 引数にNoneは渡せない
# Noneを渡すとエラーになる
list(None)
実行結果:
TypeError: 'NoneType' object is not iterable
list()
はイテラブルを必要とするため、None
を直接渡すことはできません。
変換対象がNone
になる可能性がある場合は、条件分岐で事前にチェックしましょう。
4-2. setから変換すると順序が保証されない
setをリストに変換するとき、要素の順序は予測できません。
必要に応じてsorted()
を併用して順序を揃えましょう。
unique_numbers = {5, 2, 9}
sorted_list = list(sorted(unique_numbers))
print(sorted_list)
実行結果:
[2, 5, 9]
4-3. 大量データの変換はメモリに注意
list()
はすべての要素をメモリに展開するため、大規模データではメモリ不足になる可能性があります。
必要に応じてイテレータのまま処理する方法(forループやジェネレータ)を検討しましょう。
5. まとめ
今回はPythonのlist()
関数について、基本から応用、注意点まで解説しました。
list()
はイテラブルをリストに変換する組み込み関数- 文字列・タプル・セット・辞書・rangeなどから変換可能
- map()やfilter()の結果をリストに変換すると便利
- setから変換すると順序は保証されない
- 大量データの変換はメモリ使用量に注意
実務では、データ変換・加工の前処理として頻繁に利用されます。
Python初心者はもちろん、中級者にとっても押さえておきたい基本関数です。