मैंने हाल ही में list()
, dict()
, tuple()
[]
, {}
, और ()
के स्थान पर क्रमशः तीनों में से एक को खाली करने की आवश्यकता के दौरान उपयोग करने में देखा है। तर्क यह है कि यह और अधिक पठनीय लग रहा था। मैं शैली पर राय मांगने जा रहा था, लेकिन फिर मैंने प्रदर्शन का परीक्षण करने का फैसला किया। मैं इस किया था:सूची(), dict(), और tuple() क्यों धीमी है [], {}, और()?
-
:
- फ़ंक्शन अधिक महंगा क्यों कहता है?
- इतना अंतर क्यों है?
- मेरे टाइमर में 5 खाली सूचियां बनाने के लिए हेक में 1.2 सेकंड क्यों लगते हैं? मुझे पता है कि
timeit
कचरा संग्रह बंद कर देता है, लेकिन जब संभवतः मैंने केवलrange(5)
का उपयोग किया तो इसका प्रभाव संभव नहीं हो सका।
>>> from timeit import Timer
>>> Timer('for x in range(5): y = []').timeit()
0.59327821802969538
>>> from timeit import Timer
>>> Timer('for x in range(5): y = list()').timeit()
1.2198944904251618
मैंने कोशिश की dict()
, tuple()
और list()
और प्रत्येक के समारोह कॉल संस्करण वाक्य-संस्करण ({}
[]
, ()
) तो से अविश्वसनीय रूप से भी बदतर था, मैं 3 प्रश्न हैं
पुन: शैली की राय - मैं अक्सर [] का उपयोग करता हूं। मुझे लगता है कि यह काफी स्पष्ट है। हालांकि प्रदर्शन सवाल दिलचस्प है। – nmichaels
ऐसी कई चीजें हैं जो पाइथन के बारे में अजीब लगती हैं जब तक कि आप उनका उपयोग न करें। मैं हमेशा '[] 'से' सूची()' पसंद करता हूं क्योंकि 'सूची()' वास्तव में '__builtins __। सूची 'नहीं हो सकती है। सावधान ग्राहक। – SingleNegationElimination