অভিধান থেকে ডিফল্টডিক্টিক্ট কীভাবে তৈরি করবেন?


88

আমার যদি থাকে তবে আমি d=dict(zip(range(1,10),range(50,61)))কীভাবে এটির collections.defaultdictবাইরে তৈরি করতে পারি dict?

একমাত্র যুক্তিটি defaultdictমনে হচ্ছে ফ্যাক্টরি ফাংশন, আমাকে কি আরম্ভ করতে হবে এবং তারপরে মূলটি দিয়ে গিয়ে dআপডেট করতে হবে defaultdict?

উত্তর:


99

দস্তাবেজগুলি পড়ুন :

প্রথম যুক্তি ডিফল্ট_ফ্যাক্টরি বৈশিষ্ট্যের প্রাথমিক মান সরবরাহ করে; এটি কারও কাছেই ডিফল্ট নয়। সমস্ত অবশিষ্ট আর্গুমেন্টগুলি একইভাবে বিবেচনা করা হয় যেমন সেগুলি কীওয়ার্ড আর্গুমেন্ট সহ ডিক্ট কনস্ট্রাক্টরের কাছে প্রেরণ করা হয়েছিল

from collections import defaultdict
d=defaultdict(int, zip(range(1,10),range(50,61)))

অথবা একটি অভিধান দেওয়া d:

from collections import defaultdict
d=dict(zip(range(1,10),range(50,61)))
my_default_dict = defaultdict(int,d)

4
নেস্টেড ডিক্টসের জন্য এই পদ্ধতির প্রসারিত করা কি সম্ভব? নিম্নোক্ত উদ্দেশ্য অনুসারে কাজ করে না: default_dict = defaultdict(None,{"a":1,"b":{"c":3}})উদাহরণস্বরূপ কী- default_dict["e"]ইরার উত্থাপন করে পরিবর্তে আর কিছুই না
ফেরানো

4
@ আলাঙ্কালভিটি কারণ এটি পাস করার Noneঅর্থ এই নয় যে এটি অজানা কীগুলির জন্য কিছুই তৈরি করবে না, এটি কোনওটিই ব্যবহার করবে না। আপনাকে করতে হবেdefaultdict(lambda: None, {....})
এরিক দারচিস

3

আপনি দ্বিতীয় আর্গুমেন্ট হিসাবে ডেকে পাস করে ডিক থেকে একটি ডিফল্টডিক্ট্ট তৈরি করতে পারেন।

from collections import defaultdict

d1 = {'foo': 17}
d2 = defaultdict(int, d1)

print(d2['foo'])  ## should print 17
print(d2['bar'])  ## should print 1 (default int val )

পাইথনের কোন সংস্করণ আপনি ব্যবহার করছেন? ডিফল্ট int- এ পাইথন 3.8.3 আমার জন্য Val 0, না 1.
shmulvad

0

defaultdict সংগ্রহ থেকে এমন একটি পদ্ধতি যা উপাদান উপস্থিত না থাকলে কী ত্রুটি ফেরায় না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.