Pythonの勉強を始めた初心者です。Pythonのfor文ではinの後ろにはiterableオブジェクトを書けとの説明があります。しかしiterableではないset型がinの後ろに書けてしまいます。またfrozensetを生成するfrozen関数も引数はiterableとなっているのにset型でも生成できてしまいます。どのように考えたらよいのでしょうか。
Asked
Active
Viewed 558 times
1 Answers
7
set
型、及びfrozenset
型はiterable
です。以下のコードでTrueを表示するようなオブジェクトはiterable
であるといえます。
s = set()
try:
iterator = iter(s)
print(True)
except TypeError as e:
print(False)
iterable
について 用語集 — Python 3.7.2 ドキュメント
iter
について 組み込み関数 — Python 3.7.2 ドキュメント

PicoSushi
- 4,944
- 1
- 9
- 28
-
素早いご回答ありがとうございます。setはシーケンス型ではないがイテラブルなのですね。setがイテラブルの例に出てこないので、イテラブルではないと思ってしまいました。 – tori Mar 01 '19 at 08:54