Python'da ödev problemim var.
Linux'ta Python sürüm 3.4.0 kullanıyorum. Bir CSV dosyasını okumak için duyuyorum
tasarım belge devletler Names.dat olarak belirtilen, fonksiyonlar inşa kullanarak, bu biçimindedir:
Python'da, bir sözlükte anahtar kelime çiftlerinden oluşan bir listeyi eklemenin en kolay yolu nedir?
name:name2, name:name3, name2:name4, name3:name5\n (etc)
Bir sözlüğe Bu anahtar kelime çiftleri eklemek için daha sonra duyuyorum , benim takılı olduğum kısım.
Ben bugüne kadar sahip kod şudur:
dictionary = dict()
database = open('names.dat', 'r')
data = database.read()
data = data.rstrip('\n')
data = data.split(',')
for item in range(len(data)):
dictionary.update(data[item-1])
Ben formatında bir liste elemanı varsa o varlık Benim düşünce "ismi: NAME2", ve bir şekilde bu eleman ile Sözlük güncelleme fonksiyonu çağırmak argüman, sözlükteki bir anahtar kelime çiftini düzgün şekilde eşler.
Ancak, ben bu komut dosyası çalıştırdığınızda bu hatayı olsun bu durum, değil:
File "MyName.py", line 7, in <module>
dictionary.update(data[item-1])
ValueError: dictionary update sequence element #0 has length 1; 2 is required
This ve This benzer görünüyor, ama bu ayrı bir garanti için farklı soru yeterli olduğunu hissediyorum tepki.
Burada neyi yanlış yapıyorum ve nasıl düzeltebilirim?
Bunu yapmanın daha basit bir yolu var mı?
Bu deyim aşağıdaki ilave setDefault yöntemi bunun için bazı sözdizimi şeker olduğunu Python çok yaygın: 'dict.setdefault' ve' collections.defaultdict' bakın. –
Neat, AI sınıfım için R'den Python'a geçiyorum ve bu yöntemler bana yol boyunca bazı baş ağrıları verebilir – JGreenwell