Python 集合类型1

我们接下来要学习最后一个基本数据类型,集合。

集合也是用来存多个值的,但是它和字典、列表、元组有些不一样,它存多个值不是为了取单个值出来使用的,主要是用来去重和做关系运算的。

你要存多个值方便以后取出来使用的话,你可以用字典。列表和元组,但是不要用集合。

首先我们来看怎么定义一个集合。

在大括号内用逗号分隔开多个元素,注意我说的是用逗号分隔开多个元素,并没有像以前学字典、列表和元组一样,说的是任意类型的元素。这里说的多个元素就有一定的要求了。

它必须是不可变类型。看我定义一个集合。

s={1,2,3}

这都是不可变类型对吧,来打印一下。

我继续再集合里面加一个列表,打印一下就直接报错。

s = {1, 2, 3, [4, 5, 6]}  
print(s)

然后还要注意的是,集合里面的元素是不能重复的,就算你定义的时候写了重复的元素但是它只会存一个。

还是上面的集合,然后在3的后面多加几个3。打印一下。

打印结果还是1,2,3。新增加的这些重复3它并没有帮我们存进去。

集合是无序的这点和字典一样,字典无序它不能通过索引来取值,但是可以通过key来取值。集合无序也没有key这个概念,也就意味着集合不能做取值操作。

这就是我们前面说的集合存多个值,不是为了取出单个值使用的,而是做为一个整体来去做重和关系运算的。

我现在索引取值,直接报错。

s = {1, 2, 3, 3, 3, 3}
s[0]

说告诉我们,类型错误。后面的这段话你懂得话就用翻译软件翻译一下。

说集合类型是不可下标的,下标其实就是索引。在其他语言里面叫下标。

如果我就想把即合理的某一个元素取出来,怎么操作?

当然也是可以实现的,集合也是可以被for循环遍历的,既然可以被for循环遍历那是不是也意味着它可以用list这个功能转成列表。列表是可以按索引取值的。

s = {1, 2, 3, 3, 3, 3}
print(list(s))

好!这就是集合的特点,只能存可变类型、无序且不可重复。

还有有一点需要注意的是,由于定义集合是用大括号定义,而我们定义字典也是用大括号定义,所以我们要传一个空集合的话,就必须用set加括号,而不是直接写一对大括号。

a = set()  
b={}
print(type(a),type())

我直接写一个空的大括号,打印出来的类型是一个空字典。而set加括号这个功能,也是我们用大括号定义合计的时候背后触发的功能。

同时它也可以做类型转换,也是可以把能进行for循环的类型转成集合类型。类型转换我就不再演示了,前面字典、列表、字符串的时候已经演示过很多次了。

但是转换的时候要注意,和只能存不可变类型,而且不可重复,如果你转换前的类型里面有可变类型,是转不了的,和上面一样直接报错。

如果转换前有重复的元素,转换后只能保留一个。

未经允许不得转载:445IT之家 » Python 集合类型1

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏