मैं कहता हूं कि सरलतम समाधान दो श्रेणियों को *अनपैकिंग ऑपरेटर का उपयोग करके सूची में अनपैक करना है:
>>> [*range(6, 10), *range(-9, -5)]
[6, 7, 8, 9, -9, -8, -7, -6]
न केवल यह अभी तक का सबसे छोटा उत्तर है, यह सबसे अधिक प्रदर्शन करने वाला भी है, क्योंकि यह केवल एक सूची का निर्माण करता है और इसमें दो rangeएस से परे कोई फ़ंक्शन कॉल शामिल नहीं है ।
मैंने timeitमॉड्यूल का उपयोग करके इस प्रश्न के सभी उत्तरों का परीक्षण करके इसे सत्यापित किया :
उत्तर आईडी विधि समय परिणाम
-------------------------------------------------- ------------------------------------------------
(प्रश्न में) [x के लिए x सीमा में (6,10)] + [y में y के लिए सीमा (-9, -5)] 0.843 प्रति लूप usec
(यह उत्तर) [* रेंज (6, 10), * रेंज (-9, -5)] 0.509 usec प्रति लूप
61348876 [y में x के लिए रेंज (6,10) में y के लिए (x, -x)] 0.754 हमारे लूप में
61349149 सूची (रेंज_विथ_नेगेटिव (6, 10)) 0.795 प्रति लूप
61348914 सूची (itertools.chain (रेंज (6, 10), रेंज -9, -5)) प्रति लूप 0.709 usec
61366995 [साइन * x के लिए साइन, x में itertools.product ((- 1, 1), रेंज (6, 10)) 0.899 usec प्रति लूप
61371302 सूची (श्रेणी (6, 10)) + सूची (श्रेणी (-9, -5)) 0.729 usec लूप
61367180 सूची (रेंज_विथ_नेग्स (6, 10)) 1.95 usec प्रति लूप
(मेरे अपने कंप्यूटर पर पायथन परीक्षण 3.6.9 के साथ प्रदर्शन समय (औसत चश्मा))