2009-01-10 16 views
6

Bilinmeyen bir kopyasını nasıl bir listeden çıkartabilirim?Python: Bilinmeyen sayıda değişkenten mi çıkarmak istiyorsunuz?

Çok sayıda veri sütunum var ve bazı işlevler tarafından parçalara ayrılıyorlar. Bu tuple'ı değişkenlere açmak istiyorum ama ne kadar sütun içereceğimi bilmiyorum. İhtiyacım olan değişkenleri dinamik olarak açmak için herhangi bir yol var mı? Yardımlarınız için

Teşekkür :)

cevap

7

bir listeye tuple aç?

l = list(t) 
+0

Ama neden bunu yapmak istediğinize merak ediyorum. =) – PEZ

+0

PEZ, 'loadtxt' numpy işlevini kullanarak bir dizi çizim işlemek için bir komut dosyası yapıyorum.Veri sütunlarının sayısı yalnızca çalışma zamanında biliniyor, bu yüzden var adlarını oluşturamıyorum, ancak – Nope

+1

Evet Verilerinizi genellikle bir listeyle olabildiğince çalışabilirsiniz. t [1] "unpack" olmadan l [1] ile aynı verileri verecektir. Veriler "yerinde" bir listeye ihtiyacınız olur. – PEZ

3

Sırada değişkenler oluşturmak istediğiniz anlamına mı geliyor? Dinamik olarak oluşturulmuşlarsa, programınız bunları nasıl referans göstereceğini nasıl bilecek?

Kutuplar, listeler gibi uzunluklara sahiptir. Eğer sonuçlarını değiştirerek başlatmak istemiyorsanız bunu yaparken hiçbir yararı yoktur olsa

total_columns = len(the_tuple) 

Ayrıca listeye bir demet dönüştürebilirsiniz: Aşağıdaki gibi bir şey yapmak için mükemmel izin verilen bu. (. Tuples değiştirilemez; listeleri olabilir) bir listeye bir demet dönüştürme, her neyse, ama önemsiz:

my_list = list(the_tuple) 

Orada (eval ile örneğin) anında değişkenler oluşturmak için yolu vardır, ama yine de, onlara nasıl atıfta bulunacağınızı nasıl bilebilirdiniz?

Burada yapmaya çalıştığınız şeyi netleştirmeniz gerektiğini düşünüyorum.

16

Değişken uzunluğunu açmak için yıldız işaretini kullanabilirsiniz. Örneğin:

foo, bar, *other = funct() 

Bu bar içine, foo içine ikinci ilk öğeyi koymalıyız ve other içine her şey.

Güncelleme: Bunun sadece Python 3.0 uyumlu olduğunu belirtmeyi unutmuşum.

İlgili konular