0

Python では、JavaScript 配列 (つまり、配列の範囲外に値が追加されたときに自動的に拡張される配列) を模倣することは可能ですか? JavaScript では、値が配列のインデックスの外に割り当てられると、配列は自動的に拡張されますが、Python ではそうではありません。

theArray = [None] * 5
theArray[0] = 0
print(theArray)
theArray[6] = 0 '''This line is invalid. Python arrays don't expand automatically, unlike JavaScript arrays.'''

これは JavaScript で有効であり、私は Python でそれを模倣しようとしています:

var theArray = new Array();
theArray[0] = 0;
console.log(theArray);
theArray[6] = 0; //the array expands automatically in JavaScript, but not in Python
4

3 に答える 3

1

これが実装されているネイティブな方法は考えられません。そうは言っても、期待どおりの機能を作成するだけでも悪い考えではありません。を使用する代わりにmy_list[index] = value、次のようなものを使用できます。

def insertWithAutoFill(the_list, index, new_item):
    if index >= len(the_list):
        for i in range(len(the_list), index):
             the_list.append(None)
        the_list.append(new_item)
    else:
        the_list[index] = new_item

そして、あなたはそれを次のように呼びます:

my_list = [1, 2, 3]
insertWithAutoFill(my_list, 6, 23)

現在含まれているものmy_list:

[1, 2, 3, None, None, None, 23]

特定のものが適切にチェックされ、index適切に使用されていることを確認するために、いくつかの調整が必要になる場合があります。これはわずかにテストされ、特定のケースで機能しましたが、完全であるとは限りません:)

于 2013-04-06T00:59:08.097 に答える