集合set(重点)

集合:把不同的元素组合在一起形成集合,是Python基本的数据类型 集合元素(set elements):组成集合的成员,并且不可重复

集合分类:可变集合,不可变集合 可变集合(set):可添加和删除元素,非可哈希的(元素可哈希,集合不可哈(无序)),不能用作字典的键,也不能做其他结合的元素 不可变集合(frocenset):与上面恰恰相反,使用较少 集合的作用:去重和关系测试

# -*-coding:utf-8 -*-
__author__ = 'xiaojiaxin'
__file_name__ = 'set1'


#创建列表
a=[1,2,3]
b=list(a)
print(a)
print(b)

#创建集合只有一种方法
set1=set("jiaxin,1")
print(set1)
#{'a', 'x', 'n', ',', 'j', 'i', '1'}   去重i
#集合的去重功能
list1=["jiaxin","jiaxin",1]
print(list1)
#['jiaxin', 'jiaxin', 1]
set2=set(list1)    #列表转集合
print(set2,type(set2))
# {'jiaxin', 1}  <class 'set'>  #去重功能
#集合转列表
list2=list(set2)
print(list2,type(list2))
# [1, 'jiaxin'] <class 'list'>
#集合对象必须是可哈希的,不可变的
# list3=[[1,2],3,4]
# set3=set(list3)
#print(set3)   报错,不可哈希 TypeError: unhashable type: 'list'

#集合是无序,不重复的数据类型,不可哈希,不能作为字典的键

# set4=set("jiaxin")
# dict1={set4:"1"}
#print(dict1)   #unhashable type: 'list'
#创建集合
s1=set("jiaxin")
print(s1,type(s1))
s2=frozenset("jiaxin")
print(s2,type(s2))
# {'x', 'a', 'j', 'n', 'i'} <class 'set'>
# frozenset({'x', 'a', 'j', 'n', 'i'}) <class 'frozenset'>
#访问集合:由于集合本身是无序的,所以不能通过索引或切片操作,只能循环遍历或使用in,not in来访问或判断集合元素。
s3=set("1234567")
print('1' in s3)
# True

for i in s3:    #for循环遍历
    print(i)
# 5
# 4
# 1
# 6
# 7
# 2
# 3
#更新集合
s4=set("1234567")
s4.add("ha")   #add作为某一个元素添加
print(s4)
# {'3', 'ha', '5', '7', '6', '4', '2', '1'}
s4.update("who")  #update将里面每个字符作为单个元素加入进去
print(s4)
#{'w', '1', '4', '3', '5', '6', 'h', 'o', 'ha', '7', '2'}
s4.update([78,12])
print(s4)
# {'h', '7', 'ha', 'o', 12, 78, '2', '3', '6', '4', 'w', '1', '5'}
s4.remove("2") #删除某个元素
print(s4)

a1=s4.pop()  #随机删除某个元素
print(a1)
print(s4)

s4.clear()
print(s4)   #set()  

del s4

大家对内容有任何问题,欢迎留言,定在第一时间解答,谢谢大家!