【Python学习】—字典的差集


一、

if __name__ == '__main__':
    a_list = [{'a': 1}, {'b': 2}, {'c': 3}, {'d': 4}, {'e': 5}]
    b_list = [{'a': 1}, {'b': 2}, {'g': 3}]
    ret_list = []
    for item in a_list:
        if item not in b_list:
            ret_list.append(item)
    for item in b_list:
        if item not in a_list:
            ret_list.append(item)

    print(ret_list)

二、

if __name__ == '__main__':
    a_list = [{'a': 1}, {'b': 2}, {'c': 3}, {'d': 4}, {'e': 5}]
    b_list = [{'a': 1}, {'b': 2}, {'g': 3}]
    diff_list = [item for item in a_list if item not in b_list] + [item for item in b_list if item not in a_list]
    print(diff_list)
    uni_list = [item for item in a_list if item in b_list] + [item for item in b_list if item in a_list]
    print(uni_list)
    c_list = a_list + b_list
    print(c_list)

上述代码中包含了列表推导式(list comprehension)

强大的List Comprehension (列表推导式)是Python中必须知道的概念。然而对于初学者来说是最具挑战性的。掌握这个概念将会在两个方面帮助你:

- 应该写更短和更高效率的代码

- 代码应该执行的更快

List Comprehension (列表推导式)比for循环快35%,比map快45% 。