मैं सॉफ्टवेयर के एक टुकड़े के लिए एक स्क्रिप्ट पर काम कर रहा हूं, और यह वास्तव में मुझे आवश्यक डेटा तक सीधे पहुंच नहीं देता है। इसके बजाए, मुझे आवश्यक जानकारी के प्रत्येक टुकड़े के लिए पूछना होगा, और मुझे जो डेटा मिल रहा है उसकी एक सूची बनाएं। विभिन्न कारणों से, मुझे क्रमबद्ध करने की सूची की आवश्यकता है। केवल एक बार सूची बनाने के लिए बहुत आसान है, और फिर इसके साथ सामान करके, इसे क्रमबद्ध करें। हालांकि, मुझे लगता है कि सूची बनाने के बजाय सब कुछ के माध्यम से चलाने के लिए तेज़ होगा और फिर इसे सॉर्ट करें।क्या मैं एक सूची बना सकता हूं, और इसे एक ही समय में सॉर्ट कर सकता हूं?
तो, इस समय मैं मूल रूप से इस मिल गया है:
my_list = []
for item in "query for stuff":
my_list.append("query for %s data" % item)
my_list.sort()
do_stuff(my_list)
"सामान के लिए क्वेरी" बिट सॉफ्टवेयर, जो मुझे एक iterable दे देंगे साथ क्वेरी इंटरफेस है। my_list को पुनरावर्तनीय सामग्री की सामग्री से डेटा की एक सूची रखने की आवश्यकता है। ऐसा करने से, मैं पहली सूची के लिए पूछताछ कर रहा हूं, फिर डेटा निकालने और इसे my_list में डालने के लिए इसे लूप कर रहा हूं। तो मैं इसे सॉर्ट कर रहा हूँ। आखिरकार, मैं do_stuff() विधि के साथ सामान कर रहा हूं, जो उस पर लूप करेगा और प्रत्येक आइटम को सामान देगा।
समस्या यह है कि मैं इसे हल करने से पहले इसे करने के लिए do_stuff() नहीं कर सकता, क्योंकि विभिन्न कारणों से सूची आदेश महत्वपूर्ण है। मुझे नहीं लगता कि मैं दो बार सूचियों पर लूप होने से दूर हो सकता हूं - एक बार सूची बनाने के लिए और एक बार इसमें प्रत्येक आइटम को सामान करने के लिए, क्योंकि हम पहले से नहीं जानते होंगे अगर स्थिति एन में हाल ही में जोड़ा गया आइटम अगले आइटम को जोड़ने के बाद स्थिति एन पर बने रहें - लेकिन यह अंत में उन्हें जोड़ने के बजाय, प्रत्येक आइटम को एक क्रमबद्ध फैशन में डालने के लिए क्लीनर लगता है। एक तरह से इस तरह:
for item in "query for stuff":
my_list.append_sorted(item)
इसे इस तरह यह करने के लिए कोशिश कर परेशान कर रहा लायक है, या मैं बस सूची निर्माण, और फिर इसे छँटाई करने के लिए छड़ी चाहिए?
धन्यवाद!
यह गलत है। एक क्रमबद्ध सूची में तत्व डालना ओ (लॉग (एन)) है यदि आप इसे सही तरीके से करते हैं। और यदि आपको प्रत्येक डालने के बीच एक क्रमबद्ध सूची की आवश्यकता है, तो सॉर्ट की गई सूची रखने के लिए यह अधिक कुशल है। –
आप एक सार सूची के बारे में सोच रहे हैं। पायथन सूची सरणी के रूप में लागू की जाती है। इसका मतलब यह है कि आप कहां डालेंगे, भले ही औसत मामले में सम्मिलन लागत ओ (एन) हो। Https://wiki.python.org/moin/TimeComplexity देखें। – misha