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

  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013