defaultdict
"মান অভিধানে মান পুনরুদ্ধার এবং ডিফল্ট প্রতিষ্ঠার জন্য মান সেট করার জন্য পদ্ধতি সেটডেফল্ট () অন্তর্ভুক্ত থাকে। বিপরীতে, ধারকটি আরম্ভ defaultdict
করার সাথে সাথে কলারকে ডিফল্টটিকে (ফেরত দেওয়ার মানটি) সামনের দিকে নির্দিষ্ট করতে দেয়" "
যেমন দ্বারা সংজ্ঞায়িত ডগ Hellmann মধ্যে উদাহরণ দ্বারা পাইথন স্ট্যান্ডার্ড লাইব্রেরী
কীভাবে ডিফল্টডিক্ট ব্যবহার করবেন
আমদানি ডিফল্ট
>>> from collections import defaultdict
ডিফল্টডিক্ট শুরু করুন
পাস করে এটি সূচনা করুন
callable তার প্রথম আর্গুমেন্ট হিসাবে (বাধ্যতামূলক)
>>> d_int = defaultdict(int)
>>> d_list = defaultdict(list)
>>> def foo():
... return 'default value'
...
>>> d_foo = defaultdict(foo)
>>> d_int
defaultdict(<type 'int'>, {})
>>> d_list
defaultdict(<type 'list'>, {})
>>> d_foo
defaultdict(<function foo at 0x7f34a0a69578>, {})
** এর দ্বিতীয় যুক্তি হিসাবে কোয়ার্গস ( alচ্ছিক )
>>> d_int = defaultdict(int, a=10, b=12, c=13)
>>> d_int
defaultdict(<type 'int'>, {'a': 10, 'c': 13, 'b': 12})
অথবা
>>> kwargs = {'a':10,'b':12,'c':13}
>>> d_int = defaultdict(int, **kwargs)
>>> d_int
defaultdict(<type 'int'>, {'a': 10, 'c': 13, 'b': 12})
এটি কিভাবে কাজ করে
স্ট্যান্ডার্ড অভিধানের শিশু শ্রেণীর মতো এটিও একই কাজগুলি করতে পারে।
তবে কোনও অজানা কী পাস করার ক্ষেত্রে এটি ত্রুটির পরিবর্তে ডিফল্ট মান প্রদান করে। প্রাক্তন হিসাবে:
>>> d_int['a']
10
>>> d_int['d']
0
>>> d_int
defaultdict(<type 'int'>, {'a': 10, 'c': 13, 'b': 12, 'd': 0})
আপনি যদি ডিফল্ট মান পরিবর্তন করতে চান তবে ওভাররাইট ডিফল্ট_ফ্যাক্টরী:
>>> d_int.default_factory = lambda: 1
>>> d_int['e']
1
>>> d_int
defaultdict(<function <lambda> at 0x7f34a0a91578>, {'a': 10, 'c': 13, 'b': 12, 'e': 1, 'd': 0})
অথবা
>>> def foo():
... return 2
>>> d_int.default_factory = foo
>>> d_int['f']
2
>>> d_int
defaultdict(<function foo at 0x7f34a0a0a140>, {'a': 10, 'c': 13, 'b': 12, 'e': 1, 'd': 0, 'f': 2})
প্রশ্নের উদাহরণ
উদাহরণ 1
যেমন int- কে ডিফল্ট_ফ্যাক্টরি হিসাবে পাস করা হয়েছে, কোনও অজানা কী ডিফল্টরূপে 0 এ ফিরে আসবে।
লুপটিতে স্ট্রিংটি পাস করার সাথে সাথে এটি d তে সেই বর্ণমালার সংখ্যা বাড়িয়ে তুলবে।
>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> d.default_factory
<type 'int'>
>>> for k in s:
... d[k] += 1
>>> d.items()
[('i', 4), ('p', 2), ('s', 4), ('m', 1)]
>>> d
defaultdict(<type 'int'>, {'i': 4, 'p': 2, 's': 4, 'm': 1})
উদাহরণ 2
যেহেতু একটি তালিকা ডিফল্ট_ফ্যাক্টরি হিসাবে পাস করা হয়েছে, কোনও অজানা (অস্তিত্বহীন) কীটি ডিফল্টরূপে [] (অর্থাত্ তালিকাতে) ফিরে আসবে।
লুপটিতে টিউপসগুলির তালিকা পাস করার সাথে সাথে এটি ডি [রঙ] এর মধ্যে মান যুক্ত করবে
>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> d.default_factory
<type 'list'>
>>> for k, v in s:
... d[k].append(v)
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
>>> d
defaultdict(<type 'list'>, {'blue': [2, 4], 'red': [1], 'yellow': [1, 3]})
default_factory = None
। এই প্রশ্নটি দেখুন ।