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

  • martin shervington

    martin sherv

    7 EKİM 2011
  • MofoHifi Records

    MofoHifi Rec

    15 HAZİRAN 2006
  • rekjavicxxx

    rekjavicxxx

    28 EKİM 2007