Accessing only part of a dictionary in a for using Python -


मेरा उदाहरण शब्दकोश यह है

  data_dictionary = {1: 'blue', 2: 'हरा', 3: 'लाल', 4: 'नारंगी', 5: 'बैंगनी', 6: 'मौज़'}  

आने वाले डेटा के आधार पर डेटा_ डिक्शन में अधिक तत्व हो सकते हैं । पहला मान है जिसे हम एक payload_index कहते हैं मुझे हमेशा payload_index 1 से 4 मिलता है।

मुझे इस से एक सूची को इकट्ठा करना होगा। बहुत आसान:

<डेटा> डेटा_ डिक्शन में payload_index के लिए : assembled_packet.append (data_dictionary [payload_index])

मेरी समस्या है मुझे हमेशा 3 तत्व को छोड़ने की आवश्यकता है मुझे लगता है कि मैं ऐसा कर सकता हूं, लेकिन वह अक्षम हो जाएगा:

  डेटा_dictionary में payload_index: if payload_index  

मैं इसे दो चरणों में कर सकता हूं और पहले तीन तत्वों को कर सकता हूं लेकिन समस्या यह है कि मैं समझ नहीं पा रहा हूं कि बाकी कैसे प्राप्त करना है 3 के बाद तत्वों की संख्या भिन्न होती है मैंने एक असंभव रूप से उच्च सूचकांक (नीचे) का उपयोग करने की कोशिश की, लेकिन यह स्पष्ट रूप से विफल हो जाता है:

  # श्रेणी के लिए सूचकांक 1 और दो (0,3) के लिए सूचकांक: assembled_packet.append (data_dictionary [अनुक्रमणिका]) # श्रेणी के लिए तत्व 1 और दो (4, 99 9) के लिए: assembled_packet.append (data_dictionary [अनुक्रमणिका])  

कोई भी विचार? धन्यवाद!

अक्षम ? यह एक समयपूर्व अनुकूलन की तरह लगता है! बस सामान्य कोड का प्रयोग करें: डेटा_ डिक्शन में payload_index के लिए

 : if payload_index! = 3: assembled_packet.append (डेटा_ डिक्शन [पेलोड_ इंडेक्स])  

या इससे भी बेहतर:

  assembled_packet = [data_dictionary [अनुक्रमणिका] data_dictionary में इंडेक्स के लिए! = 3]  

बेशक, आप बस कर सकते हैं:

<पूर्व> & gt; & gt; & gt; डी = {1: 'नीला', 2: 'हरा', 3: 'लाल', 4: 'नारंगी', 5: 'बैंगनी', 6: 'मौवे'}> gt; & gt; & gt; D.pop (3) 'लाल' & gt; & gt; & gt; सूची (d.values ​​()) # में py3k; अजगर-2.x डी। वेल्यू में ('नीला', 'हरा', 'नारंगी', 'बैंगनी', 'मौवे']

पीएस & lt; & gt; लंबे समय से बहिष्कृत है।


Comments