2

(デフォルトの)インデックスに応じて、リストに要素を追加するためのよりPython的な方法があるかどうかを知りたいです。そして、インデックスが範囲外の場合はどうなりますか。(私はJavaから来ています)

self.releases = []

def add_release(self, release, index=-1):

    list_length = len(self.releases)

    if index < 0:
        # add element at the end of the list
        self.releases.append(release)
    elif index < list_length:
        # add element at the given index
        self.releases.insert(index, release)
    else:
        # index is out of bound ~ what will happen when an element will be added at this index?
        pass

前もって感謝します。

4

3 に答える 3

6

インデックスを-1に残し、代わりに例外をキャッチします。

def add_release(self, release, index=-1):
    self.releases.insert(index, release)

負のインデックスで使用する.insert()と、リストの長さに対してアイテムが挿入されます。範囲外のインデックスは範囲に戻されます。長さを超えて挿入することは、追加することと同じです。代わりに、0インデックスの前に挿入すると0に挿入されます。

于 2013-02-28T14:13:01.907 に答える
3

List.append()リストに追加する値である1つの引数のみを取ります。List.insert()任意の場所に挿入する場合は、範囲外の位置引数をの呼び出しとして扱う、が必要ですappend

于 2013-02-28T14:16:47.357 に答える
0

挿入方法を見てみてください

a=[]
a.insert(index, value)

範囲外ではないと確信している場合は、次のこともできます。

a[index] = value

存在する場合、指定されたインデックスの値を上書きすることに注意してください

于 2013-02-28T14:13:10.587 に答える