সমাধান
হ্যা, তুমি পারো:
l = L[1::2]
এবং এই সব। ফলাফলের মধ্যে নিম্নলিখিত অবস্থানগুলিতে রাখা উপাদানগুলি থাকবে ( 0
-ভিত্তিতে, সুতরাং প্রথম উপাদানটি অবস্থানে রয়েছে 0
, দ্বিতীয় স্থানে রয়েছে 1
):
1, 3, 5
সুতরাং ফলাফল (প্রকৃত সংখ্যা) হবে:
2, 4, 6
ব্যাখ্যা
[1::2]
শেষে শুধু তালিকা slicing জন্য স্বরলিপি হয়। সাধারণত এটি নিম্নলিখিত আকারে থাকে:
some_list[start:stop:step]
আমরা বাদ দিলে start
ডিফল্ট ( 0
) ব্যবহার করা হবে। সুতরাং প্রথম উপাদানটি (অবস্থানের উপর 0
, কারণ সূচী- 0
ভিত্তিক) নির্বাচন করা হবে। এক্ষেত্রে দ্বিতীয় উপাদানটি নির্বাচন করা হবে।
দ্বিতীয় উপাদানটি বাদ দেওয়া হওয়ায়, ডিফল্টটি ব্যবহার করা হচ্ছে (তালিকার শেষ)। সুতরাং তালিকাটি দ্বিতীয় উপাদান থেকে শেষ পর্যন্ত পুনরাবৃত্তি করা হচ্ছে ।
আমরা তৃতীয় যুক্তি ( step
) যা সরবরাহ করি 2
। যার অর্থ একটি উপাদান বাছাই করা হবে, পরেরটি এড়িয়ে যাবে এবং আরও ...
সুতরাং, সংক্ষেপে, এই ক্ষেত্রে এর [1::2]
অর্থ:
- দ্বিতীয় উপাদানটি নিন (যা উপায় দ্বারা, একটি বিজোড় উপাদান, যদি আপনি সূচক থেকে বিচার করেন),
- একটি উপাদান এড়িয়ে যান (কারণ আমাদের রয়েছে
step=2
, তাই আমরা একটিটিকে এড়িয়ে চলেছি, step=1
যার বিপরীতে ডিফল্ট রয়েছে),
- পরবর্তী উপাদান নিন,
- পুনরাবৃত্তি পদক্ষেপ 2.-3। তালিকার শেষ না হওয়া পর্যন্ত,
সম্পাদনা : @ প্রিয়কুক্রেটি পাইথনের তালিকার স্লাইসিং স্বরলিপি সম্পর্কে আরও একটি ব্যাখ্যা দেওয়ার জন্য একটি লিঙ্ক দিয়েছেন। এখানে দেখুন: পাইথনের স্লাইস নোটেশন ব্যাখ্যা করুন
অতিরিক্ত - সাথে পাল্টা প্রতিস্থাপন enumerate()
আপনার কোডে, আপনি স্পষ্টভাবে কাউন্টার তৈরি এবং বৃদ্ধি করেছেন। পাইথনে এটি প্রয়োজনীয় নয়, কারণ আপনি কয়েকটি পুনরাবৃত্তির মাধ্যমে এটি গণনা করতে পারেন enumerate()
:
for count, i in enumerate(L):
if count % 2 == 1:
l.append(i)
উপরেরটি আপনি যে কোডটি ব্যবহার করছিলেন ঠিক ঠিক সেই একই উদ্দেশ্যে কাজ করে:
count = 0
for i in L:
if count % 2 == 1:
l.append(i)
count += 1
for
পাইথনে কাউন্টার সহ লুপগুলি অনুকরণ করার বিষয়ে আরও : পাইপনে সূচক অ্যাক্সেস করা 'লুপের জন্য'