পাইথন স্ক্রিপ্টটি 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.