Python

2016-03-30 8 views
0

'daki değişken adına değişken kullanabiliriz Python'da list öneki ve sonra komut dosyasında dinamik olarak oluşturulacak sayıyı oluşturmaya çalışıyorum. ÖrneğinPython

Listenin önek olduğunu ve 10'un dinamik olarak oluşturulan sayı olduğunu listelemeye çalışıyorum10. TCL yılında

aynı şekilde çok python var mı

list${i} 

gibi vermek?

+1

kullanın 'list '! mylist.append (myvalue) ' – deceze

+0

Evet, bunu Python ve Tcl'de yapmanın yolu sıralı değişken isimleri kullanmamaktır. Verileri kod haline getirdiği için korkunç bir uygulamadır. Evet, tcl yapmanıza izin verir, ancak 'dict $ i [$ 4] [list 4 5 6] ayarladı.' Python'un aşağıda olduğu gibi çok daha iyi. – msw

cevap

4

Sözlüğün anahtarları olarak oluşturulan adlarıyla listelerini depolamak için bir sözlük yapmak olacaktır Bunu yapmanın pythonic yolu:

d = {} 
d['list1'] = [1, 2, 3] 
d['list2'] = ['a', 'b', 'c'] 

EDIT: oluşturmak anahtar adları

yapabilirsiniz böyle anahtarlarını oluşturun:

key = 'list' + str(1) # or whatever number you are using 
d[key] = [your list] 

SON DÜZENLEME

Yoksa gerçekten, isimlerini biliyor liste halinde listelerini depolamak ve dizine göre bunları almak gerekir yaparsanız:

lists = [[1, 2, 3], ['a', 'b', 'c']]

+0

Liste1, liste2 vs 1 ve 2 gibi komut dosyaları da dinamik olarak yapılır. – Nitesh

+0

@Nitesh ''list' + str (1)' ...!? Ya da, tekrar, sadece indeksleri kendisi ile ilgilenen bir * liste * ,! – deceze

+0

Bence amacı çözmüyor. Dikte anahtarlarında ekleyebilir miyim. Dikte anahtarını dict [key1] olarak bildirdiğimi varsayalım. Buna eklemek istiyorum. Ben dict [key1] .append = değer olarak çalışıyorum. Ancak bu hata – Nitesh

0

locals(), vars() veya globals() ve değişken adınızı buraya enjekte edebilirsiniz. Örneğin için. Böyle bir şey yapıyorsan

>>> list10 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'list10' is not defined 
>>> locals() 
{'__builtins__': <module '__builtin__' (built-in)>, '__package__': None, 'x': [], '__name__': '__main__', '__doc__': None} 
>>> locals()['list10'] = [] 
>>> locals() 
{'__builtins__': <module '__builtin__' (built-in)>, 'list10': [], '__package__': None, 'x': [], '__name__': '__main__', '__doc__': None} 
>>> list10 
[] 

Genellikle, muhtemelen değişken adını ve değer (ler) saklamak için bir sözlük kullanarak daha iyi olurdu. Örneğin,

.

>>> my_lists = {} 
>>> my_lists['list10'] = [] 

Ve açın bakın istediğinizde olmayan varlığına karşı kendinizi korumak için gidiyoruz erişen doğrudan mevcut veya bir değişken adı karşı sağlamlığı istiyorsanız o zaman, bunu .get() edebilirsiniz.

>>> the_list_i_want = my_lists.get('list10') 
>>> the_list_i_want = my_lists['list10'] # Will raise a KeyError if it does not exist 
+4

Bunun için ['locals()'] (https://docs.python.org/2/library/functions.html#locals) kullanılması özellikle belgelere karşı uyarılır. –