जवाबों:
हाँ, एक अजगर सूची में तत्वों का क्रम लगातार है।
def fn_1(): lst = [] lst.append(1) lst.append(2) return lstऔर def fn_2(): print(fn_1())क्या आदेश कभी भी या कितनी बार मैं fn_1 () का उपयोग करने के बावजूद एक ही हो सकता हूं?
संक्षेप में, हाँ, आदेश संरक्षित है। लंबे समय में:
सामान्य तौर पर निम्नलिखित परिभाषाएँ हमेशा सूची जैसी वस्तुओं पर लागू होंगी:
एक सूची तत्वों का एक संग्रह है जिसमें डुप्लिकेट तत्व शामिल हो सकते हैं और एक परिभाषित आदेश है जो आमतौर पर तब तक नहीं बदलता है जब तक कि स्पष्ट रूप से ऐसा करने के लिए नहीं किया जाता है। स्टैक और कतारें दोनों प्रकार की सूचियां हैं जो तत्वों को जोड़ने और हटाने के लिए विशिष्ट (अक्सर सीमित) व्यवहार प्रदान करती हैं (स्टैक एलआईएफओ, क्वीन्स एफआईएफओ होने के कारण)। सूचियाँ, चीज़ों की सूचियों का, व्यावहारिक रूप से प्रतिनिधित्व करती हैं। एक स्ट्रिंग को पात्रों की एक सूची के रूप में सोचा जा सकता है, क्योंकि आदेश महत्वपूर्ण है ( "abc" != "bca") और स्ट्रिंग की सामग्री में डुप्लिकेट निश्चित रूप से अनुमत हैं ( "aaa"मौजूद हो सकते हैं और != "a")।
एक सेट उन तत्वों का एक संग्रह है जिसमें डुप्लिकेट शामिल नहीं हो सकते हैं और एक गैर-निश्चित क्रम है जो समय के साथ बदल सकता है या नहीं हो सकता है। सेट चीजों की सूचियों का प्रतिनिधित्व नहीं करते हैं क्योंकि वे चीजों के एक निश्चित चयन की सीमा का वर्णन करते हैं। सेट की आंतरिक संरचना, इसके तत्व एक-दूसरे के सापेक्ष कैसे संग्रहीत किए जाते हैं, आमतौर पर उपयोगी जानकारी देने के लिए नहीं होता है। कुछ कार्यान्वयन में, सेट हमेशा आंतरिक रूप से क्रमबद्ध होते हैं; दूसरों में आदेश केवल अपरिभाषित है (आमतौर पर एक हैश फ़ंक्शन के आधार पर)।
संग्रह अन्य वस्तुओं की (आमतौर पर चर) संख्या को संग्रहीत करने के लिए उपयोग की जाने वाली किसी भी वस्तु का संदर्भ देने वाला एक सामान्य शब्द है। सूची और सेट दोनों एक प्रकार का संग्रह है। टुपल्स और एरे को आमतौर पर संग्रह नहीं माना जाता है। कुछ भाषाएं नक्शे (विभिन्न वस्तुओं के बीच संबंध का वर्णन करने वाले कंटेनर) को एक प्रकार का संग्रह भी मानती हैं ।
यह नामकरण योजना उन सभी प्रोग्रामिंग भाषाओं के लिए सही है, जिन्हें मैं जानता हूं, जिनमें पायथन, सी ++, जावा, सी #, और लिस्प (जिसमें उनके क्रम को विशेष रूप से आपत्तिजनक नहीं रखा जाएगा सूची शामिल है)। यदि किसी को किसी भी तरह का पता है जहां यह मामला नहीं है, तो कृपया बस इतना कहें और मैं अपना जवाब संपादित करूंगा। ध्यान दें कि विशिष्ट कार्यान्वयन इन ऑब्जेक्ट्स के लिए अन्य नामों का उपयोग कर सकते हैं, जैसे कि C ++ में वेक्टर और ALGOL 68 में फ्लेक्स (दोनों सूचियाँ; फ्लेक्स तकनीकी रूप से सिर्फ एक पुन: प्रयोज्य सरणी है)।
अगर आपके मामले में कोई भ्रम की स्थिति बनी हुई है कि +साइन यहाँ कैसे काम करता है, की बारीकियों के बारे में , तो बस इतना जान लीजिए कि आदेश सूचियों के लिए महत्वपूर्ण है और जब तक विश्वास करने के लिए बहुत अच्छा कारण नहीं है अन्यथा आप बहुत अधिक सुरक्षित रूप से हमेशा यह मान सकते हैं कि सूची संचालन क्रम को बनाए रखती है। । इस मामले में, +साइन बहुत कुछ ऐसा व्यवहार करता है जैसे यह स्ट्रिंग्स के लिए करता है (जो वास्तव में वैसे भी पात्रों की सूची हैं): यह एक सूची की सामग्री लेता है और इसे दूसरे की सामग्री के पीछे रखता है।
अगर हमारे पास है
list1 = [0, 1, 2, 3, 4]
list2 = [5, 6, 7, 8, 9]
फिर
list1 + list2
के समान है
[0, 1, 2, 3, 4] + [5, 6, 7, 8, 9]
जिसका मूल्यांकन करता है
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
बहुत पसंद
"abdcde" + "fghijk"
का उत्पादन
"abdcdefghijk"
आप 'सेट' और 'सूची' को भ्रमित कर रहे हैं। एक सेट आदेश की गारंटी नहीं देता है, लेकिन सूचियाँ करता है।
सेट घुंघराले ब्रैकेट का उपयोग करके घोषित किए जाते हैं {}:। इसके विपरीत, वर्गाकार कोष्ठक का उपयोग करके सूचियाँ घोषित की जाती हैं []:।
mySet = {a, b, c, c}
आदेश की गारंटी नहीं देता है, लेकिन सूची इस प्रकार है:
myList = [a, b, c]
मुझे लगता है कि एक बात जो आपके विषय में हो सकती है वह यह है कि प्रविष्टियाँ बदल सकती हैं या नहीं, ताकि 2 उदाहरण के लिए एक अलग संख्या बन जाए। आप यहाँ अपना मन लगा सकते हैं, क्योंकि पायथन में, पूर्णांक अपरिवर्तनीय हैं , जिसका अर्थ है कि वे निर्मित होने के बाद बदल नहीं सकते हैं।
हालांकि अजगर में सब कुछ अपरिवर्तनीय नहीं है। उदाहरण के लिए, सूचियाँ परिवर्तनशील हैं --- वे बनने के बाद बदल सकते हैं। उदाहरण के लिए, यदि आपके पास सूचियों की एक सूची थी
>>> a = [[1], [2], [3]]
>>> a[0].append(7)
>>> a
[[1, 7], [2], [3]]
यहां, मैंने a(मैंने 7इसे जोड़ा ) की पहली प्रविष्टि को बदल दिया । अगर आप सावधान नहीं हैं (और वास्तव में, यह किसी के लिए या किसी अन्य तरीके से पायथन में प्रोग्रामिंग शुरू करने पर सभी के साथ होता है, तो बस यहां चीजों की फेरबदल करने की कल्पना कर सकते हैं; बस इस साइट को खोजें "एक सूची को संशोधित करते हुए" लूप करते हुए यह "दर्जनों उदाहरण देखने के लिए)।
यह भी है कि बाहर की ओर इशारा करते लायक है x = x + [a]और x.append(a)एक ही बात नहीं कर रहे हैं। दूसरा एक म्यूटेट करता है x, और पहला व्यक्ति एक नई सूची बनाता है और इसे असाइन करता है x। अंतर देखने के लिए, y = xकुछ भी जोड़ने xऔर हर एक को आज़माने से पहले सेटिंग का प्रयास करें , और उन दोनों के अंतर को देखें y।
alist = [1,2,3]
मैं = 0
for item in aList:
if i<2:
aList.remove(item)
i+=1
एक सूचि
[2]
नैतिक जब सूची से संचालित पाश में किसी सूची को संशोधित करता है, तो दो चरण होते हैं:
aList=[1,2,3]
i=0
for item in aList:
if i<2:
aList[i]="del"
i+=1
aList
['del', 'del', 3]
for i in range(2):
del aList[0]
aList
[3]