2012-06-01 12 views
12

मैं कैलेंडर तिथियों की गणना करने के लिए एक फ़ंक्शन लिख रहा हूं। लाइनों पर काटने के दौरान, मैंने पाया है कि मैं पर एक ही श्रेणी में एकाधिक चर निर्दिष्ट करने में असमर्थ हूं।पायथन एक ही सूची मूल्य में एकाधिक चर निर्दिष्ट करते हैं?

Jan, Mar, May, Jul, Aug, Oct, Dec = range(1,32) 

क्या इन मानों को आवंटित करने का एक प्रभावी तरीका होगा और पाइथन एक ValueError क्यों देता है?

+2

क्या कोई कारण है कि आप डेटाटाइम मॉड्यूल का उपयोग नहीं कर रहे हैं? http://docs.python.org/library/datetime.html – robert

उत्तर

55

उपयोग

Jan = Mar = May = ... = range(1, 32) 
+38

जैसे ही आपने अपना सबमिट किया था, मैं जवाब लिख रहा था, और फिर एहसास हुआ कि पाइथन के आविष्कारक से बेहतर उत्तर देने का कोई तरीका नहीं है :-) – jdi

+1

@ tijko: यह अनुमति देता है। लेकिन 'श्रेणी (x) 'का परिणाम बाईं ओर चरों में अनपॅक करने का प्रयास कर रहा है। यह काम करता है: 'ए, बी = 1,2' – jdi

+0

@jdi: उत्तर के लिए धन्यवाद, मेरा मतलब है कि एकाधिक चर को एक ही सीमा में क्यों नहीं सौंपा जा सकता है? – tijko

6

क्या आप x=y=z ... = VALUE वाक्य रचना है, जहां एक्स, वाई, जेड, और किसी भी अन्य चर आप शामिल सभी VALUE का मूल्य आवंटित किया जाएगा उपयोग करने के लिए किया जाएगा वर्णित सबसे आसान तरीका है।

आपके उदाहरण में, बराबर चिह्न के बाईं ओर सभी अल्पविराम से अलग चर, दाईं ओर एक टुपल के अनुक्रमिक मानों को आवंटित किए जाते हैं। इसलिए, आप कुछ इस तरह कर सकता है:

values = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) 
Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec = values 

अपने कोड में, आप 31 सही पर 7 बाईं तरफ के मूल्यों, और है, इसलिए क्योंकि बाईं ओर की सूची लंबी है आप सीमा त्रुटि के बाहर निकलना बाईं ओर की संख्या या चर से अधिक मूल्यों को असाइन करने के लिए। मुझे पता है कि ऊपर दिए गए कोड में आपके लक्ष्य को प्राप्त करने के लिए बहुत प्रासंगिकता नहीं है, लेकिन मैंने सोचा कि मैं कम से कम कुछ अंतर्दृष्टि दूंगा कि वह क्या करने की कोशिश कर रहा था। : डी

+0

धन्यवाद, यह वही था जो मैं सोच रहा था और मेरे अनुवर्ती प्रश्नों को सही समझ में आता है। तो यह असाइन करने के लिए ठीक है: ए, बी, सी = रेंज (3) – tijko

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