2014-12-31 13 views
6

मैं एक शब्दकोश का निर्माण कर रहा हूं (जिसे बाद में मैं JSON स्ट्रिंग में बनाउंगा)। मैं इसे इस तरह बना देता हूं:एक शब्दकोश बनाने के लिए एकल लाइन के लिए लूप?

data = {} 
for smallItem in bigList: 
    data[smallItem] = smallItem 

मैं इसे लूप के लिए कैसे बना सकता हूं? और एक generator expression

data = {smallItem:smallItem for smallItem in bigList} 

तुम भी dict उपयोग कर सकते हैं:

उत्तर

12

आप का प्रयोग कर एक dict comprehension कर सकते हैं

data = dict((smallItem, smallItem) for smallItem in bigList) 

लेकिन dict समझ तेजी से हो जाएगा।

इसे JSON स्ट्रिंग में परिवर्तित करने के लिए, आप json.dumps का उपयोग कर सकते हैं।

+0

यह काम करता है का उपयोग कर रहे है, धन्यवाद जरूरत नहीं है! – easythrees

+1

जनरेटर अभिव्यक्ति के साथ 'dict' का एकमात्र लाभ यह है कि यह Python2.6 के साथ काम करता है और नीचे जो महत्वपूर्ण हो सकता है – jamylak

+0

धन्यवाद, मैं अजगर के लिए नौसिखिया हूं, और मैं इस सुविधा का नाम ढूंढने की कोशिश कर रहा हूं । – phlaxyr

2

वास्तव में इस विशिष्ट मामले में आप भी एक समझ शब्दकोश के बाद से आप डुप्लिकेट कुंजी/मान जोड़े

>>> bigList = [1, 2, 3, 4, 5] 
>>> dict(zip(bigList, bigList)) 
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5} 
संबंधित मुद्दे