0

私の宿題では、リスト内のアイテムをランダムに選択することになっています。これまでのところ、私はこのコードを持っています。

import random

room = range(0, 365)
r = random.choice(room)

mySet = set(r)

ただし、プログラムを実行しようとすると、「 'int' is no iterable」と表示されます。

どうすればこの問題を解決できるのだろうかと思っていました。

4

6 に答える 6

2

また、セットには単一の値しかないため、反復するものは1つだけです。random.choiceこの場合は int で、シーケンス内の 1 つの要素のみを返します。これは python エラーの原因ではありません (sneeu が言うように int は iterable ではありません) が、探しているものとは異なる結果になります。random.sampleおそらくより良い選択です

于 2013-10-25T13:14:38.437 に答える
0

割り当ての説明に基づいて、セットを何かで初期化する必要はありません。各テストでセット内の要素のみを追加し、セットのサイズと挿入数を確認する必要があります。

そのため、init は次のようにする必要があります: import random

    room = range(0, 365)
    mySet = set()

PS 初期化の下のコードが正しくありません

于 2013-10-25T13:32:45.757 に答える
0

int から set オブジェクトを作成しているため、エラーが発生しました。セットは、単一のオブジェクトではなく、イテラブル (リストなど) から作成する必要があります。

したがって、これの代わりに: mySet = set(r) これを行う必要があります: mySet = set([r])

宿題のノートに従ってみませんか?

注 各テストでは、Random.randint を使用して、誕生日を表す 0 から 365 までの数字を選択する必要があります。

randint() は、リストを作成しなくてもランダムな整数を返します。これは、使用している関数で必要なものです:choice()

于 2013-10-25T13:34:42.857 に答える