What is the difference between sets and lists in Python?

前端 未结 7 678
终归单人心
终归单人心 2020-11-29 19:14

Is the only difference between sets and lists in Python the fact that you can use the union, intersect, difference, symmetric difference functions to compare two sets? Why c

7条回答
  •  不知归路
    2020-11-29 19:46

    There's a huge difference.

    1. Sets can't contain duplicates
    2. Sets are unordered
    3. In order to find an element in a set, a hash lookup is used (which is why sets are unordered). This makes __contains__ (in operator) a lot more efficient for sets than lists.
    4. Sets can only contain hashable items (see #3). If you try: set(([1],[2])) you'll get a TypeError.

    In practical applications, lists are very nice to sort and have order while sets are nice to use when you don't want duplicates and don't care about order.

    Also note that if you don't care about order, etc, you can use

    new_set = myset.intersection(mylist)
    

    to get the intersection between a set and a list.

提交回复
热议问题