6

a(包括的)からb(包括的)までの整数のリストを作成します。例: をintegers(2,5)返します[2, 3, 4, 5]

これはおそらく簡単なことだと思いますが、何も機能しないようです。

4

5 に答える 5

7
>>> def integers(a, b):
         return list(range(a, b+1))
>>> integers(2, 5)
[2, 3, 4, 5]

あなた自身の解決策を説明するには:

一部のプログラムに含める必要がある理由[i]と、それがただのプログラムである理由を説明していただけますかi

def integers(a,b):
   list = []
   for i in range(a, b+1):
       list = list + [i]

i番号自体を指します。[i]は、1つの要素を持つリストiです。リストに演算子を使用する場合+、Pythonは2つのリストを連結できるため、 。も同様[1, 2] + [3, 4]です[1, 2, 3, 4]。ただし、既存のリストに単一の要素(この場合は数値)を追加することはできません。そうしようとすると、結果になりTypeErrorます。

1つの要素のリストと連結する代わりにできることは、同じ名前のメソッドを使用して要素を追加することです。

list.append(i)

最後に、組み込み関数/型への参照をローカルで上書きするため、変数list(またはdictなど)に名前を付けないでください。str

于 2012-12-12T22:34:37.473 に答える
3

ここでは、リスト内包表記が最も理にかなっています。それは簡潔であり、(あなたの側で)リストに不必要に追加する必要はありません。

def integers(a, b):
    return [i for i in range(a, b+1)]
于 2012-12-12T22:47:56.693 に答える
1

この質問は非常に簡単です。あなたがそれを調べることができるので、私はあなたに答えを伝えたくありません。組み込み関数のドキュメントを参照してくださいrange()range()Python 3.xを使用しているため、の呼び出しでラップして、の出力をリストに展開するように明示的に強制する必要がありますlist()

于 2012-12-12T22:35:12.207 に答える
0

非常にコンパクトで、Python 標準ライブラリのみを使用:

i=range(6)[2:]

0 から 6 までの 6 メンバーのリストを作成し、インデックス 2 から最後までのメンバーを選択します。

print(i)
[2, 3, 4, 5]

別の範囲を選択するには、次を試してください。

i=range(6)[2:4]

print(i)
[2, 3]
于 2018-12-04T19:50:25.843 に答える