Mune ino posvo, isu tinotarisa maitiro ekuenzanisa maviri zvinyorwa zvemaduramazwi muPython uyezve kupurinda mutsauko uripo pakati pezvinyorwa zviviri izvi.
Maitiro ekuenzanisa anoenzanisa makiyi uye values mumaduramazwi.
Zvakare, kurongeka kwezvinhu hazvina basa kana uchienzanisa mazita maviri emaduramazwi muPython.
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] == []
Mune kodhi iri pamusoro, list_1
uye list_2
vakaenzana. Ndokunge, duramazwi rega rega rine zvinhu zvakafanana (makiyi nemitengo) mune ese ari maviri mazita. Kurongeka kwezvinhu mune duramazwi rega rega hazvina basa.
Tinogona zvakare kupurinda kuti ndeapi maduramazwi akasiyana mumazita:
Semuyenzaniso:
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)
Kubuda:
{'id': '123-efg', 'name': 'John', 'age': 24} {'id': '123-xyz', 'name': 'Aly', 'age': 35}
Imwe nzira yekunyora nzira iri pamusoro ndeiyi:
def compare_two_lists(list1: list, list2: list) -> bool:
'''
Compare two lists and logs the difference.
:param list1: first list.
:param list2: second list.
:return:
if there is difference between both lists.
'''
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:
{diff[:5]}')
return result
Iyo kodhi yemuenzaniso pazasi inoratidza maitiro ekuenzanisa maviri zvinyorwa uchishandisa Pandas DataFrame
from pandas import DataFrame import pandas as pd def compare_two_lists(list1: list, list2: list) -> bool:
'''
Compare two lists and logs the difference.
:param list1: first list.
:param list2: second list.
:return:
if there is difference between both lists.
'''
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:
{diff.head()}')
return result def dataframe_difference(df1: DataFrame, df2: DataFrame) -> DataFrame:
'''
Find rows which are different between two DataFrames.
:param df1: first dataframe.
:param df2: second dataframe.
:return: if there is different between both dataframes.
'''
comparison_df = df1.merge(df2, indicator=True, how='outer')
diff_df = comparison_df[comparison_df['_merge'] != 'both']
return diff_df