龙空技术网

Python入门教程——数据类型之Set

随心而码 111

前言:

此时我们对“python的set用法”都比较关怀,看官们都需要剖析一些“python的set用法”的相关资讯。那么小编也在网摘上收集了一些有关“python的set用法””的相关知识,希望我们能喜欢,朋友们一起来了解一下吧!

集合Set数据类型,本身就是一个集合。它是无序不重复元素的集合。

什么是Set?

与数学中的集合类似,Python中的集合数据类型指的是一系列值(元素)组成的一个集体。我们所有人类是一个集合。中国人是一个集合。

数学中集合的特性:确定性:一个对象能够确定是不是属于一个集合,如很小的数无法构成一个集合,因为具有不确定性。互异性:即集合中任意两个对象都是不同的。也就是集合中不存在重复的对象。无序性:{a, b, c}与{b, c, a}是同一个集合。纯粹性:一个集合中的所有对象必须具备一个共同的属于该集合的特征。完备性:一个集合必须包含所有符合集合共同特征的对象。Python中的集合

使用大括号 {} 或者 set() 函数来创建一个集合。注意:创建一个空集合必须使用 set(),因为 {} 用来创建一个空字典。初始化一个集合必须用List、Tuple、String。

特性

互异性:不存在重复元素。无序性。

因其无序性,集合不支持下标索引以及切片来进行取值、修改值、删除值操作

定义一个集合

example = set([1, 2, 3]) # 用列表初始化集合

print(example)

# {1, 2, 3}

注意,传入的参数[1, 2, 3]是一个list,而显示的{1, 2, 3}只是告诉你这个set内部有1,2,3这3个元素,显示的顺序也不表示set是有序的。

自动过滤重复元素

set1 = set(['apple', 'banana', 'apple', 'pear', 'orange', 'banana'])

print(set1)

# 将自动过滤重复元素

# {'apple', 'pear', 'orange', 'banana'}

Set的基本操作

基本运算

与数学中的集合操作类似,可做并集、交集等运算。

in和not in:成员运算符。判断元素与集合的包含与不包含关系。==和!=:判断等于与不等于。<:判断绝对子集关系。<=:判断非绝对子集关系。>:判断绝对超集关系。>=:判断非绝对超集关系。&:求交集。|:求并集。^:求两个集合共同元素之外的所有元素组成集合。

解释:集合a,集合b。b是a的子集,即b包含于a;如果b不等于(!=)a,则b是a的绝对子集,反过来a是b的绝对超集。

list = [1314, 520, 'my love', 'Hi', 'Python']

fir_set = set(list)

sec_set = set([520, 'Hi', 3.1415, 88])

# in and not in

print(520 in fir_set)

# IDLE中输出True

# == 判断两个集合的包含关系

print(fir_set == sec_set)

# False

# < 判断两个集合的包含关系

print({1314, 'Hi'} < fir_set)

# True

# >= 判断两个集合的包含关系

print(fir_set >= sec_set)

# False

# & 求两个集合都包含的元素

print(fir_set & sec_set)

# {520, 'Hi'}

# | 求两个集合所包含的所有元素,自动去除重复元素

print(fir_set | sec_set)

# {1314, 'Hi', 520, 3.1415, 'Python', 88, 'my love'}

# ^ 求两个集合共同元素之外的所有元素

print(fir_set ^ sec_set)

# {1314, 3.1415, 88, 'my love', 'Python'}

内置函数

add():增加新的元素,新增元素的位置随机。update(seq):用序列(String、List、Tuple)更新集合,序列中的每个元素都被添加到集合中。remove(element):删除集合中的元素。len(set):求集合中元素个数。clear():清空集合中的元素,集合变为空集合。

s = {133, '522', '你好', 568}

print(type(s)) # <class 'set'> 表示是集合类型

s.add(1000)

print(s)

# {'522', '你好', 133, 1000, 568}

s.update((12, 'Hi'))

print(s)

# {133, '你好', 1000, 'Hi', '522', 12, 568}

s.remove(568)

print(s)

# {133, 'Hi', '522', 1000, 12, '你好'}

print(len(s))

# 6

s.clear()

print(s)

# set()

纸上得来终觉浅,绝知此事要躬行。

标签: #python的set用法