IPython Thelekisa uLudwe oluBini lwezichazi magama

Kule posi, sijonga indlela yokuthelekisa uluhlu ezimbini zezichazi magama kwiPython kunye nokuprinta umahluko phakathi kwezi zintlu zimbini.

Indlela yokuthelekisa ithelekisa amaqhosha kwaye amaxabiso kwizichazi magama.

Kwakhona, uku-odolwa kwezinto akukhathali xa kuthelekiswa izintlu ezimbini zezichazi magama kwiPython.




Thelekisa uluhlu lwezichazi magama kwiPython

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] == []

Kule khowudi ingentla, list_1 kunye list_2 Bayalingana. Oko kukuthi, isichazi-magama ngasinye siqulathe izinto ezifanayo (amaqhosha kunye namaxabiso) kuluhlu zombini. Ukulandelelana kwezinto kwisichazi-magama ngasinye akunamsebenzi.



Thelekisa uluhlu lwezichazi-magama - shicilela umahluko

Sinokuprinta nokuba zeziphi izinto zesichazi-magama ezahlukileyo kuluhlu:


Umzekelo:



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)

Iziphumo:

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

Enye indlela yokubhala le ndlela ingentla:

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


Guqula iiListi ezimbini usebenzisa iPandas DataFrame

Ikhowudi yomzekelo engezantsi ibonisa indlela yokuthelekisa uluhlu ezimbini usebenzisa iPandas 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