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

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • HER0R

    HER0R

    16 Aralık 2007
  • TimMinchinLive

    TimMinchinLi

    23 ŞUBAT 2009