ডিকশনারির একটি লিস্ট থেকে যেসব ডিকশনারির সব ভ্যালুর যোগফল নির্দিষ্ট K-র চেয়ে বড়, সেগুলো ফিল্টার করার জন্য লুপ এবং কন্ডিশনাল চেক ব্যবহার করা হয়।
উদাহরণ
my_list = [
{"Python": 14, "is": 18, "fun": 19},
{"Python": 12, "is": 4, "fun": 16},
{"Python": 13, "is": 17, "fun": 11},
{"Python": 13, "is": 16, "fun": 13}
]
K = 35
print("ডিকশনারি লিস্ট:", my_list)
print("K =", K)
result = []
for d in my_list:
total = sum(d.values())
if total > K:
result.append(d)
print("যোগফল >", K, "হওয়া ডিকশনারি:")
for d in result:
print(f" {d} → যোগফল: {sum(d.values())}")
আউটপুট
ডিকশনারি লিস্ট: [{'Python': 14, 'is': 18, 'fun': 19}, {'Python': 12, 'is': 4, 'fun': 16}, {'Python': 13, 'is': 17, 'fun': 11}, {'Python': 13, 'is': 16, 'fun': 13}]
K = 35
যোগফল > 35 হওয়া ডিকশনারি:
{'Python': 14, 'is': 18, 'fun': 19} → যোগফল: 51
{'Python': 13, 'is': 17, 'fun': 11} → যোগফল: 41
{'Python': 13, 'is': 16, 'fun': 13} → যোগফল: 42
লিস্ট কম্প্রিহেনশন দিয়ে সংক্ষিপ্ত
result = [d for d in my_list if sum(d.values()) > K]
বিকল্প: নির্দিষ্ট কিগুলোর যোগফল
# শুধু 'Python' এবং 'fun' কির ভ্যালু যোগ
keys_of_interest = ['Python', 'fun']
result = [d for d in my_list if sum(d.get(k, 0) for k in keys_of_interest) > K]
Pandas-এ একই কাজ
import pandas as pd
df = pd.DataFrame(my_list)
df['total'] = df.sum(axis=1)
filtered = df[df['total'] > K].drop('total', axis=1).to_dict('records')