python - making a dictionary from two lists using indices -


मेरे पास दो सूचियां हैं:

  alist = [11,12,13,11, 15] blist = ['ए', 'ए', 'बी', 'ए', 'बी']   

मैं एक शब्दकोश बनाना चाहता हूं जहां फॉल्स में चीजें कुंजियां और आइटम हैं Alist में सूचियों के साथ दो सूचियों में सूचकांकों के लिए मान हैं:

परिणाम होना चाहिए:

  {'ए': [11, 12, 11], ' बी ': [13, 15]}   

मैंने इसे करने की कोशिश की है:

  dictNames = {} एक्सरेन्ज में (लेन (अलविदा)): Blist में पत्र के लिए: यदि पत्र नहीं dictNames: dictNames [letter] = [] अन्य: dictNames [letter] .append (alist [i])   

जो परिणाम देता है:

यह पहले से मौजूद अक्षर को डिक्शनरी में संलग्न करने के बजाय क्यों नहीं जोड़ता है शब्दकोश में पहले से ही?

पहले, आप दोनों सूचियों पर लूप। अलविदा में हर आइटम के लिए, यह blist के माध्यम से loops तो आंतरिक पाश 25 बार चलाता है इसके बजाय, आप इसे 5 गुना चलाना चाहते हैं, इसलिए आप केवल एक लूप चाहते हैं।

दूसरा, यदि आप अभी तक मौजूद नहीं हैं, तो आप सही ढंग से सूची को इनिशियलाइज़ कर सकते हैं, लेकिन उस स्थिति में नंबर सूची में जोड़ा नहीं गया है । नंबर हमेशा सूची में जोड़ दिया जाना चाहिए, भले ही यह एक नई सूची है।

मैंने ये कोड दो चीजों को ध्यान में रखने के लिए अपना कोड बदल दिया है, और यह थोड़ा बेहतर काम करता है:

  के लिए मैं एक्सरेन्ज (लेन (आलियास्ट)) में: letter = blist [i] यदि अक्षर नहीं में तदनुसार नाम: dictNames [letter] = [] dictNames [letter] .append (alist [i])   

आउटपुट:

  {'ए': [11, 12, 11], 'बी': [13, 15]}    

Comments

Popular posts from this blog

excel vba - How to delete Solver(SOLVER.XLAM) code -

c# - Add Image in a stackpanel based on textbox input -

java - Reaching JTextField in a DocumentListener -