SORU
13 AĞUSTOS 2011, CUMARTESİ


Python ValueError: paketten çok fazla değer

Bu kod bir özel durum alıyorum:

class Transaction:
    def __init__ (self):
        self.materials = {}

    def add_material (self, m):
        self.materials[m.type   m.purity] = m

    def serialize (self):
        ser_str = 'transaction_start\n'

        for k, m in self.materials:
            ser_str  = m.serialize ()

        sert  = 'transaction_end\n'
        return ser_str

for hat bir istisna atma. ms Material nesnelerdir. Herkes herhangi bir fikir neden?

CEVAP
13 AĞUSTOS 2011, CUMARTESİ


self.materials dict ve varsayılan olarak sadece anahtarları dizeleri olan) yineleme.

self.materials ikiden fazla tuş vardır beri*, "k, m", dolayısıylaValueError exception ortaya çıkar. tuple içine açmak olamaz

Python 2'de.xanahtarları ve değerleri üzerinde yineleme (tuple bu"k, m"), biz kullanmak self.materials.iteritems().

Anahtarı zaten atıyorsun beri ancak, sadece sözlüğün değerleri üzerinde yineleme yapabilirsiniz:

for m in self.materials.itervalues():

Python 3'te.x, dict.values() tercih dictionary view object verir):

for m in self.materials.values():

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007
  • Professor Messer

    Professor Me

    27 NİSAN 2007
  • Visual Life

    Visual Life

    3 Temmuz 2006