পাইথন স্ক্রিপ্টটি 2 টি অভিধানের কীগুলির তুলনা করতে এবং যদি দ্বিতীয় অভিধানের কীটির সমান মুদ্রণ মান হয়


0

উদাহরণস্বরূপ আমার কাছে দুটি অভিধান রয়েছে:

dict = {1 : a, 2 : b, 3 : c, 4 : d} 
dict1= {5 : z, 1 : y, 6 : x, 3 : u}

আমাকে ২ টি অভিধানের কীগুলি তুলনা করতে হবে এবং সেগুলি সমান হলে আমাকে ২ য় অভিধানের কীটির সাথে সম্পর্কিত মানটি মুদ্রণ করতে হবে। উদাহরণস্বরূপ, উভয় অভিধানেরই কী হিসাবে তাদের 1 এবং 3 রয়েছে তাই আমি তাদের 2 য় অভিধানে প্রাসঙ্গিক মানটি প্রিন্ট করতে হবে অর্থাৎ এটি মুদ্রণ করা উচিত yএবং u। এর জন্য অজগর লিপিটি কীভাবে লিখবেন? আমি এরকম কিছু চেষ্টা করেছি:

def compare(dictOne,dictTwo):
    for keyOne in dictOne:
        for keyTwo in dictTwo:
            if keyOne == keyTwo:
                print(dictTwo[keyTwo])

তবে আউটপুট পাচ্ছি না।

উত্তর:


2

এটি স্ট্যাকওভারফ্লোতে আরও ভালভাবে জিজ্ঞাসা করা হবে।

এটি করার সর্বাধিক পাইথোনিক উপায় এখানে:

d1 = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
d2 = {'z': 260, 'd': -12, 'r': 1, 'b': 0}

# Use a dictionary comprehension to collect d2 values of shared key
d3 = {key:d2[key] for key in d1 if key in d2}

এই অজগর কোডটি অভিধানের বোধগম্যতাগুলির d1কীগুলির মাধ্যমে পুনরাবৃত্তি করতে ব্যবহার করে এবং কী যদি উভয়টিতে থাকে d1এবং d2কীটি d3মান থেকে সংরক্ষণ করে d2।

অজগর দোভাষীর ফলাফল এখানে:

>>> d1 = {'a': 10, 'b': 20, 'c': 30, 'd': 40}
>>> d2 = {'z': 260, 'd': -12, 'r': 1, 'b': 0}
>>> d3 = {k:d2[k] for k in d1 if k in d2}
>>> d3
{'d': -12, 'b': 0}

দ্রষ্টব্য: আপনার কল করার দরকার নেই d1.keys(), তবে এটি ভাল অনুশীলন। আমি ইচ্ছাকৃতভাবে ফোন করিনি .keys()।


0

আমি আপনার কোডটি সঠিকভাবে ফর্ম্যাট করেছি এবং পরীক্ষিত করেছি এবং এটি আমার পক্ষে কাজ করেছে। আপনি কেন কোনও আউটপুট দেখছেন না তা আমি নিশ্চিত নই।

def compare(dictOne,dictTwo):
    for keyOne in dictOne:
        for keyTwo in dictTwo:
            if keyOne == keyTwo:
                print(dictTwo[keyTwo])

dict1 = {1 : 'a', 2 : 'b', 3 : 'c', 4 : 'd'}
dict2= {5 : 'z', 1 : 'y', 6 : 'x', 3 : 'u'}
compare(dict1,dict2)

যদিও সবচেয়ে কার্যকর কোডটি এটি কাজ করে না।

আরও দক্ষ কোনও কিছুর জন্য আমি একই কোডটি পরামর্শ দেব যা মহাকর্ষটি সরবরাহ করেছে:

def compare2(dictOne,dictTwo):
    for key in dictOne:
        if key in dictTwo:
            print(dictTwo[key])

-1
for key in dictTwo:
    if key in dictOne:
        print(key, "=", dictTwo[key])

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