১ থেকে ১০০ পর্যন্ত ম্যাজিক নাম্বার অ্যাপেন্ড করার ফলাফল নিচের মতো:
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
এটি সমাধানের জন্য নিচের পদ্ধতিগুলো অনুসরণ করব:
সমাধান ১
লিস্ট কম্প্রিহেনশন ব্যবহার করে ১ থেকে ১০০ পর্যন্ত ভ্যালু ls লিস্টে অ্যাপেন্ড করুন।
ls = [i for i in range(1,101)]
ল্যাম্বডা ফিল্টার ফাংশন ব্যবহার করে ৯ দিয়ে ভাগ করলে ভাগশেষ ১ হয় এমন ভ্যালুগুলো ফিল্টার করুন।
l = list(filter(lambda i: i%9==1, ls))
লিস্ট l থেকে একটি সিরিজ তৈরি করুন।
pd.Series(l)
উদাহরণ
নিচের কোডটি দেখুন আরও ভালো বুঝতে:
import pandas as pd
ls = [i for i in range(1,101)]
l = list(filter(lambda i: i%9==1, ls))
print("magic number series:\n", pd.Series(l))
আউটপুট
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100
সমাধান ২
একটি খালি লিস্ট তৈরি করুন।
ফর লুপ ১ থেকে ১০১ পর্যন্ত চালান এবং digit_sum=0 সেট করুন।
for i in range(1,101):
digit_sum = 0
i ভ্যালু একটি টেম্পরারি ভেরিয়েবলে রাখুন যাতে i পরিবর্তন না হয়।
হোয়াইল লুপ কন্ডিশন temp>0 সেট করুন।
রিমেইন্ডার এবং digit_sum নিচের মতো ক্যালকুলেট করুন:
while temp > 0:
rem = temp % 10
digit_sum = digit_sum + rem
temp = temp // 10
শেষে ইফ কন্ডিশনে চেক করুন digit_sum ১ বা ১০ কিনা। যদি ট্রু হয় তবে ভ্যালু লিস্টে অ্যাপেন্ড করুন।
if digit_sum == 1 or digit_sum == 10:
l.append(i)
শেষে লিস্ট থেকে সিরিজ জেনারেট করুন।
উদাহরণ
নিচের কোডটি দেখুন আরও ভালো বুঝতে:
import pandas as pd
l = []
for i in range(1,101):
digit_sum = 0
temp = i
while temp > 0:
rem = temp % 10
digit_sum = digit_sum + rem
temp = temp // 10
if digit_sum == 1 or digit_sum == 10:
l.append(i)
print("magic number series:\n", pd.Series(l))
আউটপুট
magic number series: 0 1 1 10 2 19 3 28 4 37 5 46 6 55 7 64 8 73 9 82 10 91 11 100