মডিউল পাঠ (4/4)
অপরিহার্য itertools
পাইথন প্রচুর পুনরাবৃত্তির সরঞ্জামগুলিকে প্রকাশ করে: কিছু বিল্ট-ইন (সর্বদা
উপলব্ধ), অন্যরা স্ট্যান্ডার্ডের itertools মডিউলে থাকে
লাইব্রেরি এখানে সবচেয়ে গুরুত্বপূর্ণ বেশী.
enumerate: সূচক + মান
যখন লুপের সময় আপনার সূচক এবং উপাদান উভয়েরই প্রয়োজন হয়:
for i, parola in enumerate(["a", "b", "c"]):
print(i, parola)
# 0 a
# 1 b
# 2 c
# parte da un altro numero:
for i, parola in enumerate(["a", "b", "c"], start=1):
print(i, parola)zip: সমান্তরালভাবে পুনরাবৃত্তি করুন
উপাদান দ্বারা একাধিক পুনরাবৃত্তিমূলক উপাদান একত্রিত করে:
nomi = ["Ada", "Linus", "Grace"]
eta = [36, 54, 85]
for n, e in zip(nomi, eta):
print(f"{n} ha {e} anni")zip সবচেয়ে ছোট পুনরাবৃত্তিযোগ্য এ থামে। একটি "দীর্ঘ" জিপ ব্যবহারের জন্য
itertools.zip_longest
দুটি সমান্তরাল তালিকা থেকে একটি ডিক তৈরি করা:
dict(zip(nomi, eta))
# {'Ada': 36, 'Linus': 54, 'Grace': 85}itertools.chain: একত্রিত পুনরাবৃত্তিযোগ্য
from itertools import chain
list(chain([1, 2], [3, 4], [5]))
# [1, 2, 3, 4, 5]একটি মধ্যবর্তী তালিকা তৈরি না করে: ফাইল, জেনারেটর, ইত্যাদির জন্য দরকারী।
itertools.count এবং repeat: অসীম পুনরাবৃত্তিকারী
from itertools import count, repeat
# count(start, step) — interi crescenti infiniti
for i in count(10, 2):
if i > 20: break
print(i)
# 10, 12, 14, 16, 18, 20
# repeat(x, n) — ripete lo stesso valore n volte (o all'infinito senza n)
list(repeat("ok", 3)) # ['ok', 'ok', 'ok']itertools.combinations
একটি প্রদত্ত সমস্ত সমন্বয় (পুনরাবৃত্তি ছাড়া, আদেশ-স্বাধীন) দৈর্ঘ্য:
from itertools import combinations
list(combinations([1, 2, 3, 4], 2))
# [(1,2), (1,3), (1,4), (2,3), (2,4), (3,4)]অর্ডার করা ভেরিয়েন্ট: permutations। পুনরাবৃত্তি সহ বৈকল্পিক:
combinations_with_replacement এবং product।
zip() অভিধান এবং ভারসাম্যহীন পুনরাবৃত্তির জন্য
zip() ফাংশনটি সংক্ষিপ্ততম ইনপুট পুনরাবৃত্তিযোগ্য শেষ হওয়ার সাথে সাথে বন্ধ হয়ে যায়। আপনি যদি উপাদানগুলিকে জোড়া দিতে চান এবং অতিরিক্ত মান রাখতে চান (এগুলিকে একটি ডিফল্ট মান দিয়ে পূরণ করুন যেমন None), আপনি itertools মডিউল থেকে zip_longest() ব্যবহার করতে পারেন। উপরন্তু, আপনি একটি zip ফলাফল সরাসরি dict() এ পাস করতে পারেন যাতে তাৎক্ষণিকভাবে একটি মূল-মান মানচিত্র তৈরি করা যায়।
চেষ্টা করে দেখুন
সমান্তরাল তালিকা দেওয়া `দেশ = ['ইটালিয়া', 'ফ্রান্সিয়া', 'স্পাগনা']` এবং `রাজধানী = ['রোমা', 'প্যারিগি', 'মাদ্রিদ']', একটি নির্দেশিকা হিসেবে `ম্যাপিং` তৈরি করুন {দেশ: রাজধানী}। `ম্যাপিং` মূল্যায়ন করুন।
ইঙ্গিত দেখান
dict(zip(দেশ, রাজধানী))
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
ব্যায়াম পর্যালোচনা করুন
প্রদত্ত `শব্দ = ['ciao', 'মন্ডো', 'পাইথন']`, i=1 থেকে শুরু করে টিপলের (i, শব্দ) একটি তালিকা হিসাবে `গণিত_আইটেম' তৈরি করুন। `গণিত_আইটেম` মূল্যায়ন করুন।
ইঙ্গিত দেখান
enumerate(words, start=1) → (i, value) tuples.
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
অতিরিক্ত চ্যালেঞ্জ
Given two lists `keys = ['a', 'b', 'c']` and `values = [10, 20, 30]`, use `zip` to pair them and convert the result into a dictionary. Store the resulting dictionary in `my_dict` and evaluate it.
ইঙ্গিত দেখান
dict(zip(কী, মান)) ব্যবহার করুন এবং এটি my_dict-এ বরাদ্দ করুন।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ