Python基础学习
时间2020-2-17
5、集合set:
按树来存储和操作(数据结构里那‘颗’树)
{}括起来的值,区别于字典
{value1,value2,。。。。}
1. 定义字典:
s = {1, 2, 3.14, 'a', ('a')}
print(s)
#{'a', 1, 2, 3.14}
s = set()#空集合
#{}是空列表,为了区别于字典使用set()表示空集合
注:不能有列表类型否则报错:
TypeError: unhashable type: ‘list’
2. 特点:
(1)、无序(看似无序内部存储按中序遍历存储)
s = {'a', 't', 1, 'a', '3.14', 'a'}
print(s)
# {1, 'a', '3.14', 't'}
# {'3.14', 1, 'a', 't'}输入与输出顺序不一致
(2)、不重复
其他类型转换时用到的最多特点:去重
s = {'a', 't', 1, 'a', '3.14', 'a'}
print(s)
# {1, 'a', '3.14', 't'}
重复元素只保留一个
原因:开辟内存时检测到已有元素则不创建新的相同元素
3. 切片:
不支持
s = {'a', 't', 1, 'a', '3.14', 'a'}
print(s[0])
#TypeError: 'set' object is not subscriptable
4. 函数及方法:
# s.add('b')#追加
# a = {1, 2, 3, 4}
# s.update(a) # 去重复的并集
# print(s)
# print(s)
# print(s.pop()) # 删除第一个值并返回删除的值
# print(s)
# s = {3, 4, 5, 6, 7, 8} # 按中序遍历存储
# s.pop()
# print(s)
# s.discard(1) #移除指定值 如果元素不存在,不会发生错误
# print(s)
# s.remove(1)#移除指定值 元素不存在,则会发生错误。
# print(s)
# s_ = s.copy()复制:浅复制
# print(s_)
# print(id(s_))
# print(id(s))
# s.clear()#清空
# print(s)
# s_ = {'a', 'b', 'c'}
# s.difference(s_)
# print(s)