অন্যদের উল্লেখ করেছি, a.update(b)
কিছু dicts জন্য a
এবং b
ফলাফলের আপনার প্রশ্নের জন্য জিজ্ঞাসা করেছি অর্জন করবে। যাইহোক, আমি যে বাতলান অনেকবার আমি দেখেছি চান extend
ম্যাপিং পদ্ধতি / সেট যে বস্তু কামনা সিনট্যাক্স মধ্যে a.extend(b)
, a
এর মান না করে overwrite করা উচিত হবে b
গুলি মান '। a.update(b)
ওভাররাইটের a
মানগুলি, এবং তাই এটির জন্য ভাল পছন্দ নয় extend
।
নোট করুন যে কিছু ভাষা এই পদ্ধতিটিকে কল করে defaults
বা inject
যেমন এটি ইতিমধ্যে বিদ্যমান মানগুলিকে ওভাররাইটিং ছাড়াই একটি অভিধানে বি এর মানগুলি (যা ডিফল্ট মানগুলির সেট হতে পারে) ইনজেকশনের একটি উপায় হিসাবে বিবেচনা করা যেতে পারে।
অবশ্যই, আপনি সহজ নোট করতে পারেন যে a.extend(b)
প্রায় একই b.update(a); a=b
। অ্যাসাইনমেন্ট অপসারণ করতে, আপনি এটি এটি করতে পারেন:
def extend(a,b):
"""Create a new dictionary with a's properties extended by b,
without overwriting.
>>> extend({'a':1,'b':2},{'b':3,'c':4})
{'a': 1, 'c': 4, 'b': 2}
"""
return dict(b,**a)
টম লেসকে ধন্যবাদ যে স্মার্ট আইডিয়াটির জন্য পার্শ্ব-প্রতিক্রিয়া-কম dict
নির্মাণকারী ব্যবহার করে extend
।