python-集合

发布时间:2019-08-13 07:37:10编辑:auto阅读(1266)

                        Set (集合)

    1 Set 定义:set可以用{}表示,但是不能用s{}这样定义,如果这样写,python编辑器会默认为是字典。

    wKioL1deFP7CdPelAAAGA__3jps738.png            

    这样定义就不会是字典,里面加一些内容。

    wKiom1deFF3wh_6KAAADutYCnjg262.png 

    2 元祖和列表是有序的,集合是无序的且集合中的元素不重复。(python根据集合中的每个元素的hash值来判断元素是否重复,所以集合中的每个元素必须是可hash的对象,在python中如果一个对象有一个_hash_的方法,表示该对象可hash)

    wKiom1deFGzRfyqJAAAETFEkLx0950.png

    3 集合的操作。

    (1)add(添加的数是随机加入集合的)

    wKioL1deFb_xtQ1XAAAGgWeF9mI878.png

    (2)update(就相当于list中的extend方法,将迭代器中的元素追加到集合中)

    wKioL1deFdGTMuvAAAAGrf-Tc44752.png

    (3)remove 删除集合里的某个元素,如果集合内无此元素那么就会报错。

    wKioL1deFfOBH4J2AAAM2LD-e8c448.png

    (4)discard 删除集合内某个元素,如果集合内无此元素不做任何操作。

    wKiom1deFPqwIvg-AAAI8D2GpJ8868.png

    (5)pop随机删除某个元素,并返回改元素。(返回的元素如果是要用可以用一个变量接受)

    wKioL1deFh6gwcPNAAAF_Ptv10s429.png

    (6)clear清空集合。

    wKioL1deFi-DGQ9lAAADD2RDH4k220.png

    4  集合的运算

    (1.1 ) difference 两个集合的差集,不修改原来的集合。

    wKioL1deFkDhaIqpAAAGUzyghgE422.png    

    wKiom1deFq2TOliXAAAHYCK-vnk617.png

    S1.difference(s2) 表示在s1集合里有的元素在s2集合里没有。

    # s1 – s2 也表示的是difference。

    (1.2) difference_update 两个集合的差集,但修改了原来集合的内容,不返回值。(这些例子是s1相对于s2)

    S1={1,2,3,4,’a’} s2={3,4,5,6,’c’,’b’}

    wKiom1deFtmBhYyQAAAJr9C9w-k797.png

    (2.1)intersection两个集合的交集,返回值,不修改原来集合的内容。

    wKiom1deFueR52V9AAAJkEWKRIM887.png

    (2.2)intersection_update两个集合的交集,无返回值,修改原来集合的内容。

    wKiom1deFvawDBYmAAAGEERT5O8866.png

    # s1 & s2 可以直接求两个集合的交集

    (3.1)union 两个集合的并集,无返回值,不修改原来的集合内容。

    wKioL1deGBbylr8GAAAWAoPmnTU992.png

    (4.1)isdisjoint查看两个集合是否有交集,Flase是无,True是有(每个python的解释器版本一样返回值也不一样,此例是2.7.1)

    wKioL1deGCyi4m24AAAEqqe2Ync250.png

    (4.2)issubset 查看是否有子集。

    5 集合不能切片。


关键字