উত্তর:
হ্যাঁ, অজগর তালিকার উপাদানগুলির ক্রম স্থির থাকে।
def fn_1(): lst = [] lst.append(1) lst.append(2) return lstআর def fn_2(): print(fn_1())আমি কীভাবে বারবার fn_1 () ব্যবহার করব তা নির্বিশেষে আদেশটি কি সর্বদা একই হবে?
সংক্ষেপে, হ্যাঁ, আদেশটি সংরক্ষণ করা হয়েছে। দীর্ঘায়িত:
সাধারণভাবে নিম্নলিখিত সংজ্ঞাগুলি সর্বদা তালিকার মতো বস্তুর ক্ষেত্রে প্রযোজ্য:
একটি তালিকা হ'ল উপাদানগুলির সংকলন যা সদৃশ উপাদান থাকতে পারে এবং একটি সংজ্ঞায়িত আদেশ থাকে যা সাধারণত এটি না করে পরিবর্তন হয় না unless স্ট্যাক এবং সারি হ'ল উভয় ধরণের তালিকা যা উপাদান যুক্ত করতে এবং অপসারণের জন্য নির্দিষ্ট (প্রায়শই সীমাবদ্ধ) আচরণ সরবরাহ করে (স্ট্যাকগুলি LIFO হচ্ছে, সারিগুলি FIFO হচ্ছে)। তালিকাগুলি হ'ল জিনিসগুলির কার্যত উপস্থাপনা। একটি স্ট্রিং অক্ষরগুলির তালিকা হিসাবে ভাবা যেতে পারে, কারণ "abc" != "bca"ক্রমটি গুরুত্বপূর্ণ ( ) এবং স্ট্রিংয়ের সামগ্রীতে নকল অবশ্যই অনুমোদিত ( "aaa"উপস্থিত থাকতে পারে এবং != "a")।
একটি সেট হ'ল উপাদানগুলির সংকলন যা সদৃশ থাকতে পারে না এবং একটি অ-নির্দিষ্ট আদেশ রয়েছে যা সময়ের সাথে পরিবর্তন হতে পারে বা নাও পারে। সেটগুলিতে জিনিসের তালিকা এত বেশি উপস্থাপন করে না যেহেতু তারা নির্দিষ্ট কিছু নির্বাচনের ব্যাপ্তি বর্ণনা করে । সেটটির অভ্যন্তরীণ কাঠামো, এর উপাদানগুলি একে অপরের সাথে তুলনামূলকভাবে কীভাবে সংরক্ষণ করা হয় তা সাধারণত দরকারী তথ্য বোঝাতে বোঝানো হয় না। কিছু বাস্তবায়নে সেটগুলি সর্বদা অভ্যন্তরীণভাবে বাছাই করা হয়; অন্যদের মধ্যে ক্রমটি কেবল অপরিজ্ঞাত (সাধারণত একটি হ্যাশ ফাংশনের উপর নির্ভর করে)।
সংগ্রহ হ'ল একটি জেনেরিক পদ যা অন্যান্য অবজেক্টের একটি (সাধারণত পরিবর্তনশীল) সংখ্যার সঞ্চয় করতে ব্যবহৃত যে কোনও অবজেক্টের উল্লেখ করে। উভয় তালিকা এবং সেটগুলি এক ধরণের সংগ্রহ a টিপলস এবং অ্যারে সাধারণত সংগ্রহ হিসাবে বিবেচিত হয় না। কিছু ভাষা মানচিত্রকে (বিভিন্ন পাত্রের মধ্যে সংযুক্তির বর্ণনা দেয় এমন পাত্রে )ও এক ধরণের সংগ্রহ হিসাবে বিবেচনা করে।
এই নামকরণ প্রকল্পটি পাইথন, সি ++, জাভা, সি #, এবং লিস্প সহ আমি জানি সমস্ত প্রোগ্রামিং ভাষার জন্য সত্য, যা তাদের অর্ডার না রাখার তালিকাগুলি বিশেষত বিপর্যয়কর হবে)। যদি কেহ কেও জানেন যে এটি কেস নয় তবে দয়া করে কেবল তাই বলুন এবং আমি আমার উত্তরটি সম্পাদনা করব। নোট করুন যে নির্দিষ্ট প্রয়োগগুলি এই বিষয়গুলির জন্য অন্যান্য নামগুলি ব্যবহার করতে পারে, যেমন সি ++ তে ভেক্টর এবং ALGOL in৮ এ ফ্লেক্স (উভয় তালিকা; ফ্লেক্সটি প্রযুক্তিগতভাবে কেবল একটি পুনরায় আকারের অ্যারে)।
+এখানে সাইন কীভাবে কাজ করে তার সুনির্দিষ্ট কারণে যদি আপনার ক্ষেত্রে কোনও বিভ্রান্তি থেকে যায় তবে কেবলমাত্র জেনে রাখুন যে তালিকাগুলির জন্য ক্রমটি গুরুত্বপূর্ণ এবং যদি বিশ্বাস না করার খুব ভাল কারণ না থাকে তবে আপনি এই তালিকাটি অপারেশনটিকে অর্ডার সংরক্ষণের জন্য নিরাপদে ধরে নিতে পারবেন। । এই ক্ষেত্রে, +চিহ্নটি স্ট্রিংগুলির মতো এটির মতো আচরণ করে (যা প্রকৃতপক্ষে কেবল অক্ষরের তালিকাগুলি রয়েছে): এটি একটি তালিকার বিষয়বস্তু নিয়ে যায় এবং এটি অন্যের সামগ্রীর পিছনে রাখে।
যদি আমাদের থাকে
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]
i = 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]