私はちょうどPython 3.5。でランダムなことをしていました。そして15分の空き時間で、私はこれを思いつきました:
a = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
"x", "y", "z"}
len_a = len(a)
list = list(range(0, len_a))
message = ""
wordlist = [ch for ch in message]
len_wl = len(wordlist)
for x in list:
print (a[x])
しかし、ランダムに成功したという満足感は、私には及ばなかった。その代り、失敗の感覚はした:
Traceback (most recent call last):
File "/Users/spathen/PycharmProjects/soapy/soup.py", line 9, in <module>
print (a[x])
TypeError: 'set' object does not support indexing
助けてください
角かっこを試してください:
a = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
"x", "y", "z"]
すなわち:list
の代わりにset
を使用します
エラーメッセージが示すように、set
は実際にインデックス作成をサポートしていません。また、a
はset
です。 Python 3.1)。ただし、セットから要素を抽出するには、単純に要素を反復処理できます。
for i in a:
print(i)
@Sakib、あなたのセットa
はすでに反復可能です。インデックスで要素にアクセスする代わりに、この更新されたコードの使用を検討してください。
_a = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"}
for x in a:
print ( x )
_
さらに、あなたのコードは、私たちがあなたの最終的な目標を達成するのに役立つほど十分な意図を示していません。例:
range()
も反復可能な型を返すため、list
に変換する理由はありませんlist
キーワードを再利用(上書き)することは悪い習慣であり、そうするとさらに多くの問題が発生します。len_wl
_はまだ目的を果たしていませんwordlist
もmessage
も目的がありませんお役に立てれば
PS-回答を選択することを忘れないでください
このようにコードを変更してみてください。
a = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m",
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w",
"x", "y", "z"}
list_a = list(a)
len_a = len(a)
list = list(range(0, len_a))
message = ""
wordlist = [ch for ch in message]
len_wl = len(wordlist)
for x in list:
print list_a[x]
setはインデックスをサポートしていませんが、リストはサポートしていますので、ここではsetをリストに変換し、リストのインデックスを取得します。