2013-02-14 24 views
7

मैं एक नाम स्थान इस तरह देख मिल गया है के माध्यम से दोहराएं:एक नाम स्थान

नाम स्थान (ATQ = कोई नहीं, हो सकता है = कोई नहीं, bEQ = कोई नहीं, ख = कोई नहीं, BQ = कोई नहीं, ग = कोई नहीं, ग = कोई नहीं, CJ = कोई नहीं, घ = कोई नहीं, जी = कोई नहीं, जे आर = [ 'xx', '015'], नियंत्रण रेखा = कोई नहीं, एल = कोई नहीं)

मैं इसे कैसे के माध्यम से पुनरावृति कर सकते हैं तो मैं यह कर सकते हैं जगह पर "जेआर" कुंजी के लिए 'xx' मान ढूंढें और बदलें?

+2

एक 'Namespace' क्या है: स्पष्ट है कि, के बाद से vars() और __dict__ दोनों वापसी dicts, आप के रूप में उन के माध्यम से पुनरावृति कर सकते हैं? – martineau

उत्तर

8

मैं क्या आप पहले से पता यकीन है, (नाम jR, या केवल यह है कि एक नाम एक not None महत्व है) नहीं कर रहा हूँ, लेकिन आप वार्स (का प्रयोग करके) जो, __dict__ की तरह एक dict नाम हैं कि होना चाहिए कोशिश कर सकते हैं अपने नामस्थान में इसकी चाबियाँ के रूप में। यदि आप स्ट्रिंग 'jR' कहीं,

vars()['jR'] = vars()['jR'][0] 

वैसे ही है, तो आप namespace.__dict__vars()

के बजाय का उपयोग कर jR के लिए ही मूल्य के रूप में ['xx','015'] में पहली मूल्य के साथ छोड़ जाएगा एक ही dict प्राप्त कर सकते हैं तो।

संपादित करें:

for k in namespace.__dict__: 
    if namespace.__dict__[k] is not None: 
     <<do something>> 
संबंधित मुद्दे