Python 集合的创建和查询操作

Python内置数据结构之一。

集合的特点

无序,所以没有索引;无重复数据;可多种数据类型混存;可变序列。集合一旦创建,便无法更改元素。

在向集合中添加数据时,它存储的位置是需要通过hash()哈希函数计算得到的,第一个添加的不一定在第一个位置上,所以集合是无序的。

集合的创建

1){}

语法格式:set_name = {element, element, …… , element}

元素之间用英文版的逗号隔开。

s = {'hello',99,'python',99,68,'world',99}

print(type(s),s)    # <class 'set'> {99, 68, 'world', 'python', 'hello'}
图片[1]-Python 集合的创建和查询操作-尤尤'blog

集合中的元素是无序的:输入顺序和输出的顺序不同。

且集合中的元素是独一无二的,它能过滤掉重复的元素:重复的数据只打印一次。

2)内置函数set()

将其他可迭代对象转换为集合类型。

语法格式:set_name = set(iterable)

参数说明:

iterable :可迭代对象。

返回值:返回一个新的集合对象。

代码演示:

s1 = set((10,20,30,40))
print(type(s1),s1)      # <class 'set'> {40, 10, 20, 30}

s2 = set(range(10))
print(type(s2),s2)      # <class 'set'> {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

s3 = set(['hello',10,'python',21])
print(type(s3),s3)      # <class 'set'> {'hello', 10, 21, 'python'}

s4 = set('python')
print(type(s4),s4)      # <class 'set'> {'h', 'n', 'y', 't', 'o', 'p'}

s5 = set({10,55,77,88})
print(type(s5),s5)      # <class 'set'> {88, 10, 77, 55}
图片[2]-Python 集合的创建和查询操作-尤尤'blog

3)创建空集合

只能使用内置函数set() 创建空集合。{}创建的是空字典。

s = set()
print(type(s),s)    # <class 'set'> set()

# {}创建的是一个空字典
s1 = {}
print(type(s1),s1)  # <class 'dict'> {}
图片[3]-Python 集合的创建和查询操作-尤尤'blog

4)集合生成式

有规则的元素才能用集合生成式。

语法格式:

图片[4]-Python 集合的创建和查询操作-尤尤'blog

代码演示:

s = {i*2 for i in range(1,6)}
print(type(s),s)    # <class 'set'> {2, 4, 6, 8, 10}

s1 = {i*2 for i in 'abc'} 
print(type(s1),s1)      # <class 'set'> {'bb', 'cc', 'aa'}
图片[5]-Python 集合的创建和查询操作-尤尤'blog

集合的查询操作

1、in/not in 判断某个元素是否存在。

语法格式:element in set_name

如果元素在集合中,则返回True,反之返回False。

s = {10,50,'hello','python',100}

# 判断10在集合s中是否存在
print(10 in s)  # True

# p不在集合中,所以返回False
print('p' in s) # False

# 判断100是否不在集合s中
print(100 not in s) # False
图片[6]-Python 集合的创建和查询操作-尤尤'blog

2、使用for-in循环将每个元素打印出来。

集合是可迭代对象,可以使用 for-in 循环来遍历。

s = {'hello',99,'python',99,68,'world'}

for i in s:
    print(i)
图片[7]-Python 集合的创建和查询操作-尤尤'blog
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容