2013-06-04 19 views
5

से शब्दकोश बनाएं मैं इस प्रारूप में कई सूचियों है:सूची अजगर

['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''] 
['2', 'AP', '', '', '', '35.0000', '105.0000', '', ''] 
['3', 'EU', '', '', '', '47.0000', '8.0000', '', ''] 

मैं सूची में पहले तत्व और पूरी सूची के रूप में मूल्य के रूप में कुंजी के साथ एक शब्दकोश बनाने के लिए की जरूरत है। कोई भी चाबियाँ दोहराई जा रही हैं। ऐसा करने का सबसे अच्छा तरीका क्या है?

उत्तर

5

एक और सूची में अपने सभी सूचियों रख दिया और ऐसा करते हैं:

my_dict = {} 
for list in lists: 
    my_dict[list[0]] = list[:] 

यह मूलतः पहला तत्व हो जाता है और my_dict में एक महत्वपूर्ण के रूप में यह डालता है और मूल्य के रूप में सूची में डाल दिया।

7
>>> lists = [['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''], 
['2', 'AP', '', '', '', '35.0000', '105.0000', '', ''], 
['3', 'EU', '', '', '', '47.0000', '8.0000', '', '']] 
>>> {x[0]: x for x in lists} 
{'1': ['1', 'O1', '', '', '', '0.0000', '0.0000', '', ''], '3': ['3', 'EU', '', '', '', '47.0000', '8.0000', '', ''], '2': ['2', 'AP', '', '', '', '35.0000', '105.0000', '', '']} 
+0

बहुत बहुत धन्यवाद :) वास्तव में –

+0

मदद मिली लेकिन अगर मैं प्रत्येक सूची के लिए एक अलग शब्दकोश बनाने की ज़रूरत है तो मैं क्या करूँगा और मैं सूचियों को मर्ज नहीं करना चाहता हूं? –

+0

@wannabe_geek आपको अपनी सूचियां किसी भी तरह से रखना है। उन्हें एक सूची में डालने का सबसे आसान तरीका है। यदि आप चाहें तो लिंक की गई सूची जैसी अन्य चीजों का उपयोग कर सकते हैं। आपका आउटपुट एक ही नियम का पालन करता है। आपको इसे कहीं रखना है। शब्दकोश सबसे अच्छा विकल्प है। – AliBZ

0

अपने अनुक्रमित अनुक्रमिक पूर्णांक हैं, तो आप एक सूची के बजाय एक dict का उपयोग कर सकते हैं:

lst = [None]+[x[1:] for x in sorted(lists)] 

यह, हालांकि प्रयोग तभी यह वास्तव में आपकी समस्या को फिट बैठता है।

संबंधित मुद्दे