मैं श्रृंखलाएं जिनमें तरह दिखाई देने वाले हैं:एक स्ट्रिंग जो tuples की एक सूची का प्रतिनिधित्व करता है पार्स
"(8, 12.25), (13, 15), (16.75, 18.5)"
और मैं एक अजगर डेटा संरचना में उनमें से प्रत्येक को परिवर्तित करना चाहते हैं। पसंदीदा रूप से फ्लोट मानों की एक जोड़ी युक्त tuples की एक सूची (या tuple)।
मैं eval("(8, 12.25), (13, 15), (16.75, 18.5)")
के साथ ऐसा कर सकता हूं जो मुझे टुपल्स का टुपल देता है, लेकिन मुझे नहीं लगता कि बाहरी जानकारी का नैतिक मूल्यांकन एक बुद्धिमान निर्णय होगा।
तो मुझे आश्चर्य हुआ कि एक सुरुचिपूर्ण पायथनिक समाधान कैसा दिख सकता है।
jfyi, इस मजबूत नहीं हो सकता है एक भी होने के लिए सूची में tuple। क्या होगा यदि आप इनपुट "(8, 12.25)" था। कि आप एक tuple में एक tuple के बजाय सिर्फ एक tuple मिल जाएगा। मुझे विश्वास है कि इनपुट वांछित नेस्टेड tuple अगर इनपुट था "(8, 12.25), "(पिछला कॉमा नोट करें)। लेकिन मैंने इसका परीक्षण नहीं किया क्योंकि मेरे पास इस मशीन पर पायथन 2.6 स्थापित नहीं है। – Tom
अच्छी पकड़ टॉम। मैंने अभी तक इसके बारे में नहीं सोचा था और यह वास्तव में एक समस्या होगी मेरी स्थिति। मैं इसे पार्सिंग के बाद जांचने जा रहा हूं। सिर के लिए धन्यवाद। दुर्भाग्य से विधि python2.5 में उपलब्ध नहीं है लेकिन मेरे मामले में यह ठीक है क्योंकि मैं इसे ऐप इंजन डेटा आयात स्क्रिप्ट में उपयोग कर रहा हूं और ऐप इंजन में नहीं। – tosh
+1: पहले 'ast.literal_eval' नहीं पता था - और यह बहुत आसान है! –