-1

乱数のリストがあります。そのリストの番号が別のリストにあるかどうかを知りたいです。

何らかの理由で、「リストのインデックスはリストではなく整数でなければならない」と言っています

int はリスト内の int と同じではないことを知っています。それらが同じかどうかを確認する方法がわかりません。

int をリスト内の数値と比較する方法の例は、非常に高く評価されます。私はこことさまざまなウェブサイトを調べましたが、私が遭遇した例はどれも役に立ちません。それ、または私は彼らの解決策を理解していません。

再度、感謝します。

編集:

「リスト内の番号」部分を含むコードを次に示しますが、それでも同じエラーが発生します。

b = []

for i in range(len(a)):  #goes through the list of numbers
    for j in (i, range(len(a))):    #checks if the first numbers appears again
        for q in (0, range(len(b))):  #checks if that number is in the 
            if (a[i] == a[j] and a[i] in b == true):  #the second list 
                b.append(a[i])
            else:
                continue
return b

if最初のステートメントでエラーが発生します

編集2: import random a = [ random.randrange(20) for _ in range(20) ]

a はランダムな整数のリストです

私はuniqueと呼ばれる関数を持っていて、私は呼び出しますunique(a)

これは私が得る正確なエラーです:

インポートランダム

a = [ random.randrange(20) for _ in range(20) ]

ユニーク(a)

トレースバック (最新の呼び出しが最後):

ファイル ""、1 行目、

ファイル「a5.py」、8行目、一意

if (a[i] == a[j] and temp in b == true):

TypeError: リストのインデックスはリストではなく整数でなければなりません

4

1 に答える 1

1

数値が数値のリストに含まれているかどうかを調べたい場合は、次のようにします。

>>> list_of_numbers = [10, 20, 30, 40]
>>> number = 20
>>> number in list_of_numbers
True

リストのどこにあるかを知りたい場合は、次を使用しindexます。

>>> list_of_numbers.index(number)
1
>>> list_of_numbers[1]
20

リストに表示されるすべての場所を知りたい場合は、明示的なループ ステートメントまたは内包表記を記述する必要があります。

>>> list_of_numbers = [10, 20, 30, 10, 20, 30]
>>> [index for index, element in list_of_numbers if element == number]
1, 5

あるリストの数字が別のリストにもあるかどうかを知りたい場合は、次のようにします。

>>> other_list = [1, 10, 100, 1000]
>>> set(other_list).intersection(list_of_numbers)
{10}

あるリストの数字のうち、別のリストにある数字の数を知りたい場合:

>>> other_list = [1, 10, 100, 1000]
>>> len(set(other_list).intersection(list_of_numbers))
1

持っているすべてのリストに 23 という数字が含まれているかどうかを知りたい場合は、ヘロインを減らすか (== 'ウィリアム S. バロウズ' の場合)、悪い映画の役割を減らす (== 'ジム キャリー' の場合) 必要があります。 .

于 2013-10-15T23:43:18.620 に答える