কিভাবে পাইথনে জিপ ফাংশন ব্যবহার করবেন

How Use Zip Function Python



এই নিবন্ধটি পাইথনের স্ট্যান্ডার্ড মডিউল লাইব্রেরিতে উপলব্ধ জিপ ফাংশন সম্পর্কিত একটি নির্দেশিকা কভার করবে। এই পদ্ধতিটি আপনাকে একাধিক পুনরাবৃত্তিযোগ্য বস্তুর উপাদানগুলিকে একত্রিত করতে এবং যুক্ত করতে দেয়। তারপরে আপনি এই জোড়াগুলিতে আরও যুক্তি চালাতে পারেন। অনেক ক্ষেত্রে, জিপ ফাংশন ব্যবহার করা লুপের জন্য নেস্টেড একাধিক ব্যবহার করার চেয়ে অনেক বেশি দক্ষ এবং পরিষ্কার।

জিপ ফাংশন সম্পর্কে

আগেই বলা হয়েছে, একাধিক পুনরাবৃত্তিযোগ্য বস্তুর উপাদান থেকে জোড়া তৈরি করতে জিপ ফাংশন ব্যবহার করা হয়। জিপ ফাংশনের মৌলিক সিনট্যাক্স এবং ব্যবহার বুঝতে নীচের উদাহরণটি বিবেচনা করুন:







তালিকা 1= ['প্রতি', 'খ', 'গ']
তালিকা 2= ['আপেল', 'বল', 'বিড়াল']
জিপ করা= zip(তালিকা 1,তালিকা 2)
ছাপা (তালিকা(জিপ করা))

উপরের কোড নমুনার প্রথম দুটি বিবৃতিতে কিছু উপাদান সম্বলিত দুটি তালিকা সংজ্ঞায়িত করা হয়েছে। এরপরে, জিপ ফাংশনটি তালিকা 1 এবং তালিকা 2 ভেরিয়েবলকে আর্গুমেন্ট হিসাবে পাস করে ব্যবহার করা হয়। এটি জিপ ফাংশনের প্রধান সিনট্যাক্স। আপনাকে কেবল তালিকা বা অন্যান্য বৈধ অর্ডার করা পুনরাবৃত্তিগুলি আর্গুমেন্ট হিসাবে পাস করতে হবে যার উপাদানগুলি আপনি একত্রিত করতে চান। সবশেষে, জিপড ভেরিয়েবলের আউটপুট পেতে প্রিন্ট স্টেটমেন্ট ব্যবহার করা হয়। উপরে উল্লিখিত কোড নমুনা চালানোর পরে, আপনার নিম্নলিখিত আউটপুট পাওয়া উচিত:



[('a', 'apple'), ('b', 'ball'), ('c', 'cat')]

লক্ষ্য করুন যে জিপ ফাংশন একটি জিপ টাইপ বস্তু প্রদান করে এবং একটি তালিকা নয়। আপনি এটি একটি পুনরাবৃত্তিযোগ্য টাইপ রূপান্তর করতে হবে, যেমন উপরের মুদ্রণ বিবৃতিতে দেখানো হয়েছে।



সহজ কথায়, জিপ ফাংশন দুটি সূচী থেকে একই সূচকের উপাদানগুলি সংগ্রহ করে এবং সেগুলিকে একটি টুপলে জোড়া হিসাবে সংযুক্ত করে। সুতরাং তালিকা 1 থেকে 0 তম উপাদানটি তালিকা 2 এর 0 তম উপাদানের সাথে মিলিত হয়েছে, তালিকা 1 থেকে 1 ম উপাদানটি তালিকা 2 এর 1 ম উপাদান এবং এর সাথে মিলিত হয়েছে। জিপ ফাংশন বাম থেকে ডানে চলে যায় এবং জোড়াযুক্ত উপাদানযুক্ত টুপলে তাদের মধ্যে সংরক্ষিত উপাদানগুলির মতো সূচক থাকে।





জিপ ব্যবহার করা যখন Iterables একই উপাদানের সংখ্যা নেই

উপরে উল্লিখিত উদাহরণে, উভয় তালিকাতে উপাদানগুলির সমান সংখ্যা রয়েছে। যদি আপনি এমন কিছু কোড নিয়ে কাজ করেন যেখানে উভয় তালিকায় একই সংখ্যক উপাদান থাকে না, জিপ ফাংশন তালিকার সর্বশেষ উপাদানটিতে সর্বনিম্ন সংখ্যক উপাদান থাকা বন্ধ হয়ে যাবে।

নীচের উদাহরণে, জিপ ফাংশনটি সি এলিমেন্টে থামবে, নির্বিশেষে তালিকা 2 আরো একটি উপাদান আছে।



তালিকা 1= ['প্রতি', 'খ', 'গ']
তালিকা 2= ['আপেল', 'বল', 'বিড়াল', 'পুতুল']
জিপ করা= zip(তালিকা 1,তালিকা 2)
ছাপা (তালিকা(জিপ করা))

উপরে উল্লিখিত কোড নমুনা চালানোর পরে, আপনার নিম্নলিখিত আউটপুট পাওয়া উচিত:

[('a', 'apple'), ('b', 'ball'), ('c', 'cat')]

জিপ ফাংশন ব্যবহার করার সময় আপনি দুইটির বেশি আইটেবল ব্যবহার করতে পারেন

সাধারণত, জিপ ফাংশন দুটি পুনরাবৃত্তিযোগ্য বস্তুর তুলনা করতে ব্যবহৃত হয়। যাইহোক, আপনি জিপ ফাংশনের আর্গুমেন্ট হিসাবে যেকোনো পুনরাবৃত্তিমূলক পাস করতে পারেন। সংক্ষিপ্ত তালিকার শেষ উপাদানটিতে থামার নীতি এখনও প্রযোজ্য হবে।

তালিকা 1= ['প্রতি', 'খ', 'গ']
তালিকা 2= ['আপেল', 'বল', 'বিড়াল', 'পুতুল']
তালিকা 3= ['5', '3']
জিপ করা= zip(তালিকা 1,তালিকা 2,তালিকা 3)
ছাপা (তালিকা(জিপ করা))

উপরে উল্লিখিত কোড নমুনা চালানোর পরে, আপনার ফলাফল হিসাবে নিম্নলিখিত আউটপুট পাওয়া উচিত:

[('a', 'apple', '5'), ('b', 'ball', '3')]

একটি জিপ টাইপ অবজেক্ট থেকে ব্যক্তিগত তালিকা তৈরি করা

যদি আপনার ইতিমধ্যেই একটি জিপ বস্তু থাকে, তাহলে আপনি এটি ব্যবহার করতে পারেন পৃথক তালিকাগুলি পুনopনির্মাণ করতে যা আগে ব্যবহার করা হয়েছিল যখন জিপ ফাংশনটি তাদের প্রথম ডাকা হয়েছিল।

তালিকা 1= ['প্রতি', 'খ', 'গ']
তালিকা 2= ['আপেল', 'বল', 'বিড়াল', 'পুতুল']
তালিকা 3= ['5', '3']
জিপ করা= zip(তালিকা 1,তালিকা 2,তালিকা 3)
l1,l2,l3= zip(*জিপ করা)
ছাপা (তালিকা(l1), তালিকা(l2), তালিকা(l3))

উপরে উল্লিখিত কোড নমুনা চালানোর পরে, আপনার ফলাফল হিসাবে নিম্নলিখিত আউটপুট পাওয়া উচিত:

['a', 'b'] ['আপেল', 'বল'] ['5', '3']

উপরের কোড নমুনায়, জিপ অবজেক্টটি * অপারেটর ব্যবহার করে ডিফল্ট করা হয়। ডিফ্লেটেড ফলাফলগুলি তখন জিপ ফাংশনে অন্য কলটিতে খাওয়ানো হয় যা মূল তালিকা তৈরি করে। মনে রাখবেন যে জিপ বস্তু যখন প্রথমবার তৈরি করা হয়েছিল তখন অসম দৈর্ঘ্যের তালিকা ব্যবহার করা হলে আপনি মূল তালিকায় সমস্ত উপাদান ফিরে পেতে পারেন না।

যখন আপনি দীর্ঘতম পরিবর্তনযোগ্য থেকে উপাদানগুলি রাখতে চান তখন জিপ ব্যবহার করুন

উপরের একাধিক উদাহরণে, আপনি হয়তো লক্ষ্য করেছেন যে জিপ ফাংশনটি ডিফল্টরূপে সংক্ষিপ্ত পুনরাবৃত্তির শেষ উপাদানটিতে থেমে যায়। আপনি যদি এটি দীর্ঘতম পুনরাবৃত্তির শেষ উপাদান পর্যন্ত না পৌঁছানো পর্যন্ত পুনরাবৃত্তি চালিয়ে যেতে চান?

এই ক্ষেত্রে, আপনাকে পাইথনের ইটারটুলস মডিউল থেকে zip_longest () পদ্ধতি ব্যবহার করতে হবে। এটি জিপ ফাংশন হিসাবে একই কাজ করে, একটি ছোট পার্থক্য সহ এটি দীর্ঘতম পুনরাবৃত্তিযোগ্য টাইপের শেষ উপাদানটিতে থামে।

থেকে itertools আমদানিzip_longest
তালিকা 1= ['প্রতি', 'খ', 'গ']
তালিকা 2= ['আপেল', 'বল', 'বিড়াল', 'পুতুল']
তালিকা 3= ['5', '3']
জিপ করা=zip_longest(তালিকা 1,তালিকা 2,তালিকা 3)
ছাপা (তালিকা(জিপ করা))

উপরে উল্লিখিত কোড নমুনা চালানোর পরে, আপনার ফলাফল হিসাবে নিম্নলিখিত আউটপুট পাওয়া উচিত:

[('a', 'apple', '5'), ('b', 'ball', '3'), ('c', 'cat', None), (None, 'পুতুল', None) ]

অনুপস্থিত মানগুলি কোন টাইপ অবজেক্ট হিসাবে পপুলেটেড। আপনি zip_longest পদ্ধতিতে একটি অতিরিক্ত fillvalue আর্গুমেন্ট পাস করে পূরণ করতে আপনার নিজের মান সরবরাহ করতে পারেন।

থেকে itertools আমদানিzip_longest
তালিকা 1= ['প্রতি', 'খ', 'গ']
তালিকা 2= ['আপেল', 'বল', 'বিড়াল', 'পুতুল']
তালিকা 3= ['5', '3']
জিপ করা=zip_longest(তালিকা 1,তালিকা 2,তালিকা 3,পূরণ মূল্য='আমার_মূল্য')
ছাপা (তালিকা(জিপ করা))

উপরে উল্লিখিত কোড নমুনা চালানোর পরে, আপনার ফলাফল হিসাবে নিম্নলিখিত আউটপুট পাওয়া উচিত:

[('a', 'apple', '5'), ('b', 'ball', '3'), ('c', 'cat', 'my_value'), ('my_value', 'পুতুল ',' my_value ']]

উপসংহার

জিপ ফাংশন কিছু লুপ এবং শর্ত বিবৃতি ব্যবহার করে অনুকরণ করা যেতে পারে। যাইহোক, এটি অপ্রয়োজনীয় কথাবার্তা এবং পুনরাবৃত্তিমূলক বিবৃতি অপসারণ করে কোডকে সংগঠিত এবং পরিষ্কার রাখতে সাহায্য করে।