2010-02-10 12 views
77

यह बदसूरत है। ऐसा करने के लिए एक और पाइथोनिक तरीका क्या है?tuples unpack करने के लिए पाइथोनिक तरीका क्या है?

import datetime 

t= (2010, 10, 2, 11, 4, 0, 2, 41, 0) 
dt = datetime.datetime(t[0], t[1], t[2], t[3], t[4], t[5], t[6]) 
+5

आप डॉक्स में इसके बारे में पढ़ सकते हैं: यहाँ एक और उदाहरण (Python tutorial से) है http://docs.python.org/tutorial/controlflow.html # अनपॅकिंग-तर्क-सूचियां –

उत्तर

111

आमतौर पर, आप func(*tuple) सिंटैक्स का उपयोग कर सकते हैं। तुम भी टपल का एक हिस्सा है, जो आपको यहाँ करने के लिए कोशिश कर रहे हैं क्या की तरह लगता है पारित कर सकते हैं:

t = (2010, 10, 2, 11, 4, 0, 2, 41, 0) 
dt = datetime.datetime(*t[0:7]) 

यह खोल एक टपल कहा जाता है, और (जैसे कि सूची के रूप में) अन्य iterables के लिए इस्तेमाल किया जा सकता भी।

>>> range(3, 6)    # normal call with separate arguments 
[3, 4, 5] 
>>> args = [3, 6] 
>>> range(*args)   # call with arguments unpacked from a list 
[3, 4, 5] 
+6

यह मनमाने ढंग से पुनरावृत्तियों के लिए काम करता है। –

+2

मैं यह जोड़ना चाहता हूं कि यह वाक्यविन्यास पाइथन 3.5 में कहीं भी (फ़ंक्शन कॉल में नहीं) काम करता है, इसलिए उदाहरण के लिए 'x, y, z = * (1, 2, 3)' जैसे विवरण बिना त्रुटि के काम करेंगे (जैसा कि यह बहुत समय पहले होना चाहिए था) – Nearoo

+0

क्या यह अन्य सूची वस्तुओं के बीच ऐसा करने का एक तरीका है? जैसे 'my_tuple = ("बी", "सी"); "% s% s% s"% ("ए", * my_tuple) '? – Dannid

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

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