|
楼主 |
发表于 2020-4-10 16:11:03
|
显示全部楼层
第五章 变量类型
5.10 集合
一、集合特点
集合是一个无序的不重复元素序列。
集合分为可变集合和不可变集合。
二、创建可变集合
使用大括号将元素包裹,元素之间使用逗号分隔,即可完成可变集合的创建。
- st={7,2,1,3,5,3,3,3,3,7,9}
- # 输出结果{1,2,3,5,7,9}
- print(st)
复制代码
三、遍历集合
我们可以通过使用for语句进行遍历。
- lt={1,2,4,51,23,1,4}
- for item in lt:
- print(item)
复制代码 我们再来一起分析一下如下代码。
- st={1,4,5,7,2,4}
- for num,item in enumerate(st):
- print(num,item)
复制代码 注意,因为集合不支持输出内部的单个数据,即无法使用索引的方式输出其内部的单个值,所以此时的num并不是索引,而是遍历顺序。
四、操作可变集合
(1)访问集合
集合不支持输出内部的单个数据,即无法使用索引的方式输出其内部的单个值,只能通过使用遍历的方式访问。
- tp={1,3,4,10,5,6}
- # 报错
- print(tp[2])
复制代码 (2)添加元素
通过使用add(x)方法添加元素,参数x表示要添加的元素,如果元素已经存在,则不能添加,但该方法不会抛出异常。
- tp={1,3,4,10,5,6}
- tp.add(100)
- print(tp)
复制代码 (3)删除元素
我们可以通过使用remove(x)方法删除集合中的元素,参数x表示要删除的元素,如果元素不存在,则抛出异常。
- tp={1,3,4,10,5,6}
- tp.remove(10)
- print(tp)
复制代码 我们可以通过使用discard(x)方法删除集合中的元素,参数x表示要删除的元素,如果元素不存在,不会抛出异常。
- tp={1,3,4,10,5,6}
- tp.discard(10)
- print(tp)
复制代码 我们可以通过使用pop()方法删除集合中任意一个元素,该方法的返回值是删除的元素。
- tp={3,4,1,10,5,6}
- new_tp=tp.pop()
- print(tp,new_tp)
复制代码 (4)清除集合
我们可以通过使用clear()方法清空集合。
- tp={3,4,1,10,5,6}
- tp.clear()
- # 直接清空集合内元素,变为空集合
- print(tp)
复制代码
五、创建不可变集合
我们可以通过使用frozenset([iterable])函数来创建不可变集合,注意不可以使用大括号进行创建,此时我们创建的数据类型为frozenset。
- lt=frozenset({1,2,32,3,3,5})
- print(lt)
- # 此时报错,因为类型为不可变集合
- lt.add(7)
复制代码
六、集合推导式
集合推导式需要将推导式放到大括号中执行。
- # 以下两种方式等价
- lt={val for val in range(1,100) if val%2==0 if val%5==0}
- print(lt)
- lt={val for val in range(1,100) if val%2==0 and val%5==0}
- print(lt)
复制代码 |
|