2016-11-01 2 views
-4

私はbisectを使ってdatapoint> -6の最初の出現を見つけましたが、私がスクリプトを実行すると2番目(そして最後)の出現箇所しか見つかりませんでした。どのようにbisectは私の意図を見つけることができませんか?

import bisect 

    kk = [-9, -6, -4, -6, -8, -8, -7, -7, -6, -6, -5] 

    first = bisect.bisect(kk, -6) 
    print(first) 

コード出力のこの部分 "10" ではなく "2" であるべきです。なぜ誰かが私に言うことができますか? 私はあくまでも愚かな質問のために申し訳ありません - 私はPythonにはまったく新しいです! the documentationとして

+5

bisectはバイナリ検索を実行するため、リストがソートされているとみなされます。あなたはソートされていません。 – Blender

答えて

1

は(強調追加)言う:

このモジュールは、ソート順にリストを維持ためのサポートを提供し

あなたはbisectで何かを行うことができます前に、あなたのリストをソートする必要があります。

+0

さて、初めてデータがしきい値に達するまでのインデックスはどのように見えますか? – Blochio

+0

@Blochioリストを並べ替えるか線形検索をする –

+0

@Blochio:「bisect」とは何を考えるのか、なぜここでそれを使用しているのかは分かりません。どのようにして何かを行う方法についての質問がある場合(リスト内の特定の値の最初の出現箇所を見つける方法など)、bisectについて質問するのではなく、直接質問してください。 – BrenBarn

関連する問題