Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में दो डिक्शनरी लिस्ट की कुशलतापूर्वक तुलना करें - अंतर तेजी से खोजें

इस पोस्ट में, हम देखते हैं कि Python में दो डिक्शनरी लिस्ट की तुलना कैसे करें और दोनों लिस्ट के बीच अंतर भी प्रिंट करें।

तुलना मेथड डिक्शनरी में keys और values की तुलना करता है।

साथ ही, Python में दो डिक्शनरी लिस्ट की तुलना करते समय एलिमेंट्स का क्रम मायने नहीं रखता।

Python में डिक्शनरी लिस्ट की तुलना करें

if __name__ == '__main__':
    list_1 = [
        {'id': '123-abc', 'name': 'Mike', 'age': 40},
        {'name': 'John', 'age': 34, 'id': '123-efg'},
        {'age': 32, 'id': '123-xyz', 'name': 'Aly'}
    ]
    list_2 = [
        {'name': 'Mike', 'id': '123-abc', 'age': 40},
        {'id': '123-efg', 'age': 34, 'name': 'John'},
        {'id': '123-xyz', 'name': 'Aly', 'age': 32}
    ]
    assert [i for i in list_1 if i not in list_2] == []

उपरोक्त कोड में, list_1 और list_2 समान हैं। यानी प्रत्येक डिक्शनरी में दोनों लिस्ट में समान आइटम्स (keys और values) हैं। प्रत्येक डिक्शनरी में एलिमेंट्स का क्रम अप्रासंगिक है।

डिक्शनरी लिस्ट की तुलना - अंतर प्रिंट करें

हम यह भी प्रिंट कर सकते हैं कि लिस्ट में कौन से डिक्शनरी आइटम्स अलग हैं:

उदाहरण के लिए:

if __name__ == '__main__':
    list_1 = [
        {'id': '123-abc', 'name': 'Mike', 'age': 40},
        {'id': '123-efg', 'name': 'John', 'age': 24},
        {'id': '123-xyz', 'name': 'Aly', 'age': 35}
    ]
    list_2 = [
        {'id': '123-abc', 'name': 'Mike', 'age': 40},
        {'id': '123-efg', 'name': 'Jon', 'age': 24},
        {'id': '123-xyz', 'name': 'Aly', 'age': 32}
    ]
    for i in list_1:
        if i not in list_2:
            print(i)

आउटपुट:

{'id': '123-efg', 'name': 'John', 'age': 24}
{'id': '123-xyz', 'name': 'Aly', 'age': 35}

उपरोक्त मेथड को लिखने का एक और तरीका है:

def compare_two_lists(list1: list, list2: list) -> bool:
    """ दो लिस्ट की तुलना करता है और अंतर लॉग करता है।
    :param list1: पहली लिस्ट।
    :param list2: दूसरी लिस्ट।
    :return: यदि दोनों लिस्ट में अंतर है।
    """
    diff = [i for i in list1 + list2 if i not in list1 or i not in list2]
    result = len(diff) == 0
    if not result:
        print(f'There are {len(diff)} differences:\n{diff[:5]}')
    return result

Pandas DataFrame का उपयोग करके दो लिस्ट बदलें

नीचे दिया गया उदाहरण कोड दिखाता है कि Pandas DataFrame का उपयोग करके दो लिस्ट की तुलना कैसे करें

from pandas import DataFrame
import pandas as pd

def compare_two_lists(list1: list, list2: list) -> bool:
    """ दो लिस्ट की तुलना करता है और अंतर लॉग करता है।
    :param list1: पहली लिस्ट।
    :param list2: दूसरी लिस्ट।
    :return: यदि दोनों लिस्ट में अंतर है।
    """
    df1 = pd.DataFrame(list1)
    df2 = pd.DataFrame(list2)
    diff = dataframe_difference(df1, df2)
    result = len(diff) == 0
    if not result:
        print(f'There are {len(diff)} differences:\n{diff.head()}')
    return result

def dataframe_difference(df1: DataFrame, df2: DataFrame) -> DataFrame:
    """ दो DataFrames के बीच अलग rows खोजें।
    :param df1: पहला dataframe।
    :param df2: दूसरा dataframe।
    :return: यदि दोनों dataframes में अंतर है।
    """
    comparison_df = df1.merge(df2, indicator=True, how='outer')
    diff_df = comparison_df[comparison_df['_merge'] != 'both']
    return diff_df
  1. - दो Python सूचियों के तत्वों को जोड़ना

    Python में सूचियों को जोड़ा जा सकता है जिसके परिणामस्वरूप दोनों सूचियों के तत्वों वाली एक नई सूची बनती है। दो सूचियों को जोड़ने के विभिन्न दृष्टिकोण हैं और वे नीचे वर्णित हैं। लेकिन इन सभी मामलों में सूचियों की लंबाई समान होनी चाहिए। Append() का उपयोग करना append() का उपयोग करके हम एक सूची के तत्वो

  1. - Python प्रोग्राम दो डिक्शनरी को मर्ज करने के लिए

    इस ट्यूटोरियल में, हम Python में दो डिक्शनरी को कैसे संयोजित करें, यह सीखने जा रहे हैं। आइए दो डिक्शनरी को मर्ज करने के कुछ तरीके देखते हैं।update() मेथडसबसे पहले, हम डिक्शनरी के इनबिल्ट मेथड update() को मर्ज करने के लिए देखेंगे। update() मेथड None ऑब्जेक्ट लौटाता है और दो डिक्शनरी को एक में जोड़ता

  1. - Python में दो लिस्ट्स से डिक्शनरी कैसे बनाएं?

    यदि L1 और L2 क्रमशः कुंजियों और संबंधित मानों को समाहित करने वाले लिस्ट ऑब्जेक्ट्स हैं, तो डिक्शनरी ऑब्जेक्ट बनाने के लिए निम्न लिस्ट कॉम्प्रिहेंशन सिंटैक्स का उपयोग किया जा सकता है। >>> L1 = [a, b, c, d] >>> L2 = [1, 2, 3, 4] >>> d = {L1[k]: L2[k] for k in range(len(L1))