2016-04-08 27 views
1

Herkese merhaba python için oldukça yeni (bu basit bir soru varsa beni affedin) ve çok-işlemcili bir k-aracı algoritmasıyla çalışıyorum ama veri formatlama ile ilgili bir sorun yaşıyorum. Ben böylece biçimlendirilmiş listelerin bir sözlük var:Listelerin sözlüğünü tuples sözlüğüne dönüştürün

{0: [122.0, 0.000209], 1: [125.0, 0.000419], 2: [127.0, 0.000233], 3: [120.0, 0.000209], 4: [126.0, 0.000336]} 

ama böylece görünüyor dizilerini bir sözlük olması gerek: Sana işlevini kullanabilirsiniz biliyorum

{0: (122.0, 0.000209), 1: (125.0, 0.000419), 2: (127.0, 0.000233), 3: (120.0, 0.000209), 4: (126.0, 0.000336)}. 

tuple(list) 

Bir listeyi bir tuple dönüştürmek için, ancak sözlükte yineleme ve her girişi bir tuple değiştirme konusunda eminim. Bunu yapmaya nasıl devam edeceği konusunda herhangi bir tavsiyesi var mı? Herhangi bir yardım için teşekkür ederiz.

cevap

4

naif yol:

for key in dictionary: 
    dictionary[key] = tuple(dictionary[key]) 

veya biraz daha temiz görünümlü ama aksi tamamen özdeş yol:

for key, value in dictionary.iteritems(): 
    dictionary[key] = tuple(value) 

ya da fazla temizlik için bir sözlük kavrama gibi son yeniden şekillendirilmesi:

Bu özel görev için
dictionary = {k: tuple(v) for k,v in dictionary.iteritems()} 

.

İlk yöntem ise

+1

Bilmiyorum (Python 3, dictionary.items() yerine iteritems() daha kullanın) "naif". Ancak "yerinde" dir. –

+0

@JaredGoguen Birisi denemek için düşünebildiği ilk şey, bu yüzden neden onu etiketledim naif. OP, yerinde bir gereklilik belirtmez. –

+0

Teşekkür ederim bayım, tam ihtiyacım olan şey. –

İlgili konular