0

例を考えてみましょう:

      l = [11, 12, 13, 14, 14, 15, 16, 17, 18, 19, 19, 20, 30, 40]

今、私は白黒12から16までの数字を表示する必要があるので、出力は

        [12, 13, 14, 14, 15, 16]

サンプル コードを作成しましたが、入力全体が表示されます。

       l = [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]
       for i in range(len(l)):
            if ( l[i]==12):
                 print l

出力は次のとおりです。

        [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]

誰かがこれを行うためにPythonでコードを提案できれば、それは役に立ちます........

4

3 に答える 3

4
print [x for x in l if 12 <= x <= 16]
于 2013-09-10T03:19:41.060 に答える
2
l = [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]
for i in range(len(l)):
    if ( l[i]==12):
        print l

このコードは、「リスト内に 12 に等しい項目が見つかったら、リスト全体を出力する」ことを示しています。これが、リスト全体を出力する理由です。これは、Python に指示したことです。それがあなたが見ている数字であるため、おそらくl[i]代わりに印刷したいと思うでしょう。l

ステートメントを調整して、if12 ~ 16 の数字のみを選択できるようになりました。

if 12 <= l[i] <= 16:

数値が得られたので、書式設定を行うことができます。必要な出力を取得する最も簡単な方法は、リストを作成して最後に出力することです。

l = [11,12,13,14,14,15,16,12,17,18,19,19,20,30,40]
o = []
for i in range(len(l)):
    if 12 <= l[i] <= 16:
        o.append(l[i])
print o

その後にできる改善点は他にもあります。たとえば、リストのインデックスではなく、リスト内の数値を直接反復できます。これは、他の方法では必要ありません。

for n in l:
    if 12 <= n <= 16:
        o.append(n)
print o

これは、リストを構築する一般的なパターンをより簡単にするために設計された Python 言語の機能です。

print [n for n in l if 12 <= n <= 16]
于 2013-09-10T03:27:09.700 に答える