在前面的几篇Python的文章中,我们介绍了Python的多种不同类型的对象:字符串、列表、元组、字典。它们有各自的特点:
- 字符串str:存在索引,字符串中的元素是可以重复的,元素是不可变,不能修改的
- 列表list:也能够进行索引和切片操作,元素可以修改,是可变的
- 元组tuple:可以看成是不能进行修改的“列表”;元素不能直接修改,也可以进行索引和切片操作,类似列表
- 字典:Python中十分常用,键值对组成,键必须是比可变的数据类型(比如元组),值可以是任意数据;字典是无序的
如果说元组是列表和字符串的杂合体,那么集合可以看做是列表和字典的杂合体
Python连载文章
Python入门的连载文章:
本文的整体目录结构:
集合创建
集合set的创建有两种方法:
- 通过set函数创建,空集合只能用这种方式
- 通过
{}
来创建
空集合
s1 = set() # 空集合
s1
set()
type(s1)
set
注意:空集合必须使用set函数来创建,因为{}
是用来创建空字典的
非空集合
使用花括号创建
s2 = {1,2,3,4}
s2
{1, 2, 3, 4}
type(s2)
set
使用set函数创建
s3 = set([9,8,7,6]) # 将元素用列表装起来,set只能有一个参数
s3
{6, 7, 8, 9}
type(s3)
set
s4 = set((11,22,33,44)) # 用元组装起来
s4
{11, 22, 33, 44}
集合的元素不能重复
集合中的元素是不能重复的;如果有重复的元素,集合会自动去重。这是一种非常高效的去重方式
s5 = set([1, 2, 3, 4, 3, 2, 1]) # 存在重复数据
s5
{1, 2, 3, 4}
产生的数据中自动将重复的去掉了
type(s5) # 查看类型
set
s6 = set("javascript") # 字符串中a重复了,自动去重
s6
{'a', 'c', 'i', 'j', 'p', 'r', 's', 't', 'v'}
特别点
当我们创建集合的时候,需要注意数据类型
s7 = {"python", [1,2,3,"java"], {"name":"xiaoming","age":19},100}
s7
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-b8ed1637ec12> in <module>
----> 1 s7 = {"python", [1,2,3,"java"], {"name":"xiaoming","age":19},100}
2 s7
TypeError: unhashable type: 'list'
上面报错中的关键词:unhashable
,中文是不可哈希的。意思是创建