(आप अजगर 3.x का उपयोग कर रहे हैं, जहां प्रिंट 2.x में एक समारोह — है, प्रिंट एक बयान है। यह प्रमुख अजगर संस्करण — 2.x उल्लेख या 3 करने के लिए एक अच्छा विचार है। एक्स — खासकर जब, मदद के लिए पूछ क्योंकि वर्तमान में ज्यादातर लोगों को यथोचित 2.x मान जब तक यह कहा गया है।)
पहले print('literal' + var1 + var2)
, एक अभिव्यक्ति मूल्यांकन करता है और गुजरता एक भी तर्क मुद्रित करने के लिए। दूसरा, print('literal', var1, var2)
, प्रिंट करने के लिए तीन तर्क पास करता है। यह मौका से पूरी तरह से एक ही आउटपुट है: इस तरह प्रिंट प्रिंट करता है। दूसरा कोई संगतता नहीं कर रहा है, और बस एक स्थान से अलग प्रत्येक मान को आउटपुट कर रहा है (जो प्रिंट का डिफ़ॉल्ट व्यवहार है)।
स्पष्ट होने के लिए: अभिव्यक्ति है संयोजन करने में अधिक है, लेकिन अल्पविराम संयोजन कर नहीं है।
समय: मैं नीचे दिए गए परिणामों मिला, हालांकि, मेरा मानना है कि यह पक्षपातपूर्ण है क्योंकि तार बहुत कम हैं (उदाहरण के लिए लंबे तार परिणाम को उलट सकते हैं), और किसी भी मामले में, प्रश्न में प्रस्तुत होने के रूप में प्रिंटिंग में अधिक समय नहीं लगेगा (आपको कई लोगों के बारे में चिंता करने में बेहतर प्रदर्शन मिलेगा इसके बजाय अन्य चीजें)।
नोट: टाइमिट का उपयोग करने के निर्देशों के लिए python -m timeit --help
का उपयोग करें।
$ python -m timeit -s 'from cStringIO import StringIO; out = StringIO(); a = "abc"; b = "def"' 'print >>out, a, b'
100000 loops, best of 3: 7.68 usec per loop
$ python -m timeit -s 'from cStringIO import StringIO; out = StringIO(); a = "abc"; b = "def"' 'print >>out, a + " " + b'
100000 loops, best of 3: 4.67 usec per loop
$ python -m timeit -s 'from cStringIO import StringIO; out = StringIO(); a = "abc"; b = "def"' 'print >>out, " ".join([a, b])'
100000 loops, best of 3: 5.37 usec per loop
विशेष रूप से, प्रत्येक कोड ठीक उसी उत्पादन दे देंगे नोटिस (यह व्यर्थ अगर एक विधि गलत परिणाम देता तुलना करने के लिए है)। स्ट्रिंगियो इन परीक्षणों में स्क्रीन पर प्रिंट करने का एक आसान तरीका है, लेकिन यह परिणाम भी प्रभावित कर सकता है।
जो दोनों के बीच सबसे तेज़ है? – 3zzy
वे अलग-अलग चीजें करते हैं, आप उन्हें गति के लिए उचित रूप से तुलना नहीं कर सकते हैं। उस ने कहा, आप * मुद्रण * की तुलना दो अलग-अलग तरीकों से कर सकते हैं, टाइमिट मॉड्यूल का उपयोग करें। –
ध्यान दें कि उपर्युक्त समय के लिए, सीस्ट्रिंगियो कंसोल पर लिखने के मुकाबले अलग-अलग प्रदर्शन करने जा रहा है, और कंसोल पर लिखते समय प्रदर्शन आपके द्वारा किए जा रहे प्लेटफॉर्म और स्ट्रिंग्स के आकार के आधार पर भिन्न हो सकता है। –