ডিকশনারির ভ্যালু লিস্টগুলোর মধ্যে যেটির রেঞ্জ (সর্বোচ্চ - সর্বনিম্ন) সর্বাধিক, সেটির কি (key) বের করার জন্য লুপ এবং max()/min() ব্যবহার করা হয়।
উদাহরণ
my_dict = {
"pyt": [26, 12, 34, 21],
"fun": [41, 27, 43, 53, 18],
"learning": [21, 30, 29, 13]
}
print("ডিকশনারি:")
for k, v in my_dict.items():
r = max(v) - min(v)
print(f" {k}: {v} → রেঞ্জ = {max(v)} - {min(v)} = {r}")
# সর্বোচ্চ রেঞ্জ বের করা
max_range = 0
max_key = None
for key, values in my_dict.items():
current_range = max(values) - min(values)
if current_range > max_range:
max_range = current_range
max_key = key
print(f"\nসর্বোচ্চ রেঞ্জ: {max_key} (রেঞ্জ = {max_range})")
আউটপুট
ডিকশনারি:
pyt: [26, 12, 34, 21] → রেঞ্জ = 34 - 12 = 22
fun: [41, 27, 43, 53, 18] → রেঞ্জ = 53 - 18 = 35
learning: [21, 30, 29, 13] → রেঞ্জ = 30 - 13 = 17
সর্বোচ্চ রেঞ্জ: fun (রেঞ্জ = 35)
লিস্ট কম্প্রিহেনশন + max() দিয়ে সংক্ষিপ্ত
max_key = max(my_dict.keys(), key=lambda k: max(my_dict[k]) - min(my_dict[k]))
max_range = max(my_dict[max_key]) - min(my_dict[max_key])
print(f"সর্বোচ্চ রেঞ্জ: {max_key} ({max_range})")
একই রেঞ্জ একাধিক কি হলে
# সব কি যাদের রেঞ্জ == ম্যাক্স রেঞ্জ
max_range_val = max(max(v) - min(v) for v in my_dict.values())
max_keys = [k for k, v in my_dict.items() if max(v) - min(v) == max_range_val]
print("সর্বোচ্চ রেঞ্জ والے কিগুলো:", max_keys)
Pandas-এ প্রয়োগ
import pandas as pd
df = pd.DataFrame({k: pd.Series(v) for k, v in my_dict.items()})
ranges = df.max() - df.min()
max_key = ranges.idxmax()
print(max_key, ranges[max_key])