类似字典,是一组key的集合,它不存储value。
集合的本质:各元素间是无序的,元素在集合中没有重复。即集合是无序无重复组合,它没有索引和位置的概念。
列表、元组都是有序,里面可以有重复的元素。
集合是无序的-> 不支持下标索引;
集合是可变的数据类型;
集合中的元素是唯一的;
集合一般用于元组或者列表中的元素去重;
和判断数据是否存在 交集,并集,差集 等关系。
只支持成员操作符in、for循环迭代、枚举。
!!不支持索引,重复,连接,切片
1、集合的创建
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
set()函数,可以将其它的组合数据类型转化为可变集合类型,返回一个无重复元素且排序任意的可变集合。
集合的创建,它首先需要一个list,或tuple,或dict作为输入集合。
s1 = set(("Google", "Runoob", "Taobao"))
# 结果:{'Runoob', 'Taobao', 'Google'}
s2 = set(["Google", "2dRunoob1", "Taobao*"])
# 结果:{'2dRunoob1', 'Taobao*', 'Google'}
s3 = set({
"江苏省": "南京市", "江西省": "九江市"})
# 结果:{'江西省', '江苏省'}
s4 = set("安徽省枞阳县石矶头镇")
# 结果:{'石', '镇', '县', '省', '安', '徽', '阳', '头', '矶', '枞'}
s5 = {
"江苏省", "南京市", "合肥市", "安徽省"}
# 结果:{'合肥市', '安徽省', '江苏省', '南京市'}
s6 = {
"江苏省": "南京市", "江西省": "九江市", "a":"b"}
# 结果:{'江苏省': '南京市', '江西省': '九江市', 'a': 'b'}
s7 = {
("Google", "Runoob"), "(1, 2)", '{"a": "b"}', "安徽省枞阳县"}
# 结果:{'{"a": "b"}', '安徽省枞阳县', '(1, 2)', ('Google', 'Runoob')}
s8 = {
"安徽省枞阳县石矶头镇"}
# 结果:{'安徽省枞阳县石矶头镇'}
从上面的输出结果可以看出,集合会把传入的字符串拆分为单个字符作为集合的成员,当传入列表时,集合会把列表内的元素作为集合成员。从输出结果还可以看出,集合不允许有重复的元素,例传入“Java”字符串,但集合成员只会有{‘j’,’a’,’v’},重复的a被删除。
2、集合中元素的增加
A add()
将一个元素 x 添加到集合s中,如果元素已存在,则不进行任何操作。
s = {
"baidu", "alibaba", "huawei", "xiaomi"}
a = s.add("oppo")
# 结果:{'huawei', 'xiaomi', 'oppo', 'alibaba', 'baidu'}
s = {
"baidu", "alibaba", "huawei", "xiaomi"}
a = s.add("oppo")
a = s.add(("oppo", "apple", "三星"))
# 结果:{'xiaomi', 'baidu', 'oppo', 'huawei', ('oppo', 'apple', '三星'), 'alibaba'}
add()添加元素,不能是列表、字典可变元素
set1 = {
"a", "b", "c"