web-dev-qa-db-ja.com

In Pythonどうすれば動的配列を宣言できますか

配列を宣言し、リストボックスに存在するすべての項目をリストボックスに存在するグループ名に関係なく削除する必要があります。 Pythonでコーディングするのに、どんな体を助けてもらえますか。私はWINXP OSを使用しています&Python 2.6。

18
Srinath

Pythonでは、listは動的配列です。次のようなものを作成できます。

lst = [] # Declares an empty list named lst

または、アイテムを入力できます:

lst = [1,2,3]

「追加」を使用してアイテムを追加できます。

lst.append('a')

forループを使用して、リストの要素を反復処理できます。

for item in lst:
    # Do something with item

または、現在のインデックスを追跡する場合:

for idx, item in enumerate(lst):
    # idx is the current idx, while item is lst[idx]

要素を削除するには、次のようにdelコマンドまたはremove関数を使用できます。

del lst[0] # Deletes the first item
lst.remove(x) # Removes the first occurence of x in the list

ただし、リストを繰り返し処理して同時に変更することはできません。そのためには、代わりにリストのスライス(基本的にはリストのコピー)を反復処理する必要があります。次のように:

 for item in lst[:]: # Notice the [:] which makes a slice
       # Now we can modify lst, since we are iterating over a copy of it
77

Pythonでは、動的配列は配列モジュールの「配列」です。例えば。

from array import array
x = array('d')          #'d' denotes an array of type double
x.append(1.1)
x.append(2.2)
x.pop()                 # returns 2.2

このデータ型は、本質的に、組み込みの「リスト」型とnumpyの「ndarray」型のクロスです。 ndarrayと同様に、配列内の要素はCタイプであり、初期化時に指定されます。それらは、notポインターpythonオブジェクト;これは、誤用やセマンティックエラーの回避に役立つ場合があります。また、modestlyはパフォーマンスを改善します。

ただし、このデータ型には基本的にpythonリストと同じメソッドがあり、文字列とファイルの変換メソッドがいくつかあります。ndarrayの追加の数値機能がすべて欠けています。

詳細については、 https://docs.python.org/2/library/array.html を参照してください。

5
ChrisM

多次元配列に関して 異なるスタックオーバーフローポスト で最近見つけた素晴らしい方法を次に示しますが、その答えは1次元配列でもうまく機能します。

# Create an 8 x 5 matrix of 0's:
w, h = 8, 5;
MyMatrix = [ [0 for x in range( w )] for y in range( h ) ]  

# Create an array of objects:
MyList = [ {} for x in range( n ) ]

内容とサイズを動的に1行で指定できるため、これが気に入っています。

道路のためにもう一つ:

# Dynamic content initialization:
MyFunkyArray = [ x * a + b for x in range ( n ) ]
1
SpaceHaze