2010-05-26 5 views
12

Bir Array bildirmek istiyorum ve ListBox'taki Grup isminden bağımsız olarak ListBox'taki tüm öğeler silinmelidir. herhangi bir vücut Python'da kodlamada bana yardımcı olabilir. WINXP OS & Python 2.6 kullanıyorum.Python'da Dinamik Diziyi Nasıl Bildirebilirim

+3

Liste Kutusu nedir? – kennytm

+5

GUI yapmaya çalışıyor musunuz? Hangi çerçeve? – voyager

+0

@KennyTM Sorunun etiketlerine bakın: bir liste kutusu, kullanıcının listeden bir veya daha fazla öğe seçmesini sağlayan grafiksel bir kullanıcı arabirimidir. " –

cevap

61

Python'da, list dinamik bir dizidir. Böyle bir hesap oluşturabilirsiniz:

lst = [] # Declares an empty list named lst 

Yoksa öğeleri ile doldurun: Sen kullanarak öğeleri ekleyebilir

lst = [1,2,3] 

"Ekle": Sen elemanları üzerinde

lst.append('a') 

yineleme yapabilirsiniz for döngüsünü kullanarak listenin listesi:

for item in lst: 
    # Do something with item 

Veya, şimdiki endeksi takip etmek isterseniz:

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

unsurları kaldırmak için, olduğu gibi del komutunu veya kaldır işlevini kullanabilirsiniz:

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

Note, yine de, bu listeyi tekrarlayamaz ve aynı zamanda değiştiremez; Bunu yapmak için, listenin bir diliminde yinelemeniz gerekir (bu, temel olarak listenin bir kopyasıdır). Olarak:

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

Python'da bir dinamik dizi, dizi modülünden bir 'dizi' dir. Örneğin.

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 

Bu veri türü esas yerleşik 'liste' tipi ve numpy 'ndarray' türü arasında bir geçiştir. Bir ndarray gibi, dizilerdeki öğeler başlatma sırasında belirtilen C türleridir. Bunlar python nesnelerine işaretçisi değildir; Bu, bazı yanlış kullanım ve anlam hatalarından kaçınmanıza yardımcı olabilir ve mütevazi bir şekilde performansını artırır. Ancak, bu veri türü temelde, bir dizi dize & dosya dönüştürme yöntemleri kısıtlayan bir python listesiyle aynı yöntemlere sahiptir. Bir ndarrayın tüm ekstra sayısal işlevlerinden yoksundur.

Ayrıntılar için bkz. https://docs.python.org/2/library/array.html.