Python学习_集合
集合
集合的定义
# 集合的定义:大括号包围元素,每个元素间用逗号来隔开;
# 与字典的区别:字典键值对一一对应的关系,集合是没有的;
# 定义:直接{}
s1={10,20,30}
print(type(s1)) # <class 'set'>
print(s1) # {10, 20, 30}
# 使用set()函数
s2=set('abcdef')
print(type(s2)) # <class 'set'>
print(s2) # {'a', 'e', 'c', 'b', 'd', 'f'}
# 定义一个空集合
# 区别:
s3={} # 系统认为这是定义一个空字典
print(type(s3)) # <class 'dict'>
s4=set() # 定义一个空集合
print(type(s4)) # <class 'set'>
集合的特点
特点 :
a.集合中的数值不重复。
b.集合是无序,不支持下标操作。
c.可以用于元组或者列表去重。
集合的操作
add()方法 :添加具体某个元素
update()方法 :追加的数据必须是可迭代对象(如列表、集合、字典、元组)
# 集合的特性:无序不重复的数据类型,不支持下标操作
# 集合的常见操作
# 一、增
# 1. add
s1={10,20}
s1.add(100)
print(s1) # {100, 10, 20}
s1.add(10)
print(s1) # {100, 10, 20} 自动去重
# 2.update 追加的数据必须是可迭代对象(如列表、集合、字典、元组)
s2={10,20,30}
# s2.update(100) # TypeError: 'int' object is not iterable 整形不是可迭代对象
# print(s2)
# 添加列表
s2.update([100]) # [100]类型为列表,是一个可迭代对象
print(s2) # {100, 10, 20, 30}
# 添加元组
s2.update((11,22))
print(s2) # {100, 10, 11, 20, 22, 30}
# 添加字符串
s2.update('xsy123')
print(s2) # {100, 's', 'x', 10, 11, 20, 22, '2', '3', 'y', 30, '1'}
# 添加集合
s2.update({13,24})
print(s2) # {'x', '1', 100, 10, 11, '2', 13, '3', 'y', 20, 's', 22, 24, 30}
# 添加字典
s2.update({'age':19}) # 只添加了key(字典的键值对是一个整体,代表一个元素)
print(s2) # {100, 's', 'y', 10, 11, 'age', 13, 20, '1', 22, 'x', '2', '3', 24, 30}
# 删除
# 1.remove() 删除集合中指定的数据,如果数据不存在则报错
s1={10,20}
print(s1)
s1.remove(10)
print(s1) # {20}
s1.remove(10) # KeyError: 10
print(s1) # 集合中没有该数则报错
# 2.discard()丢弃 删除集合中指定的数据,如果数据不存在则报错
s2={10,20}
s2.discard(10)
print(s2) # {20}
s1.discard(10)
print(s1) # 集合中没有该数也不报错
# 3.pop()随机删除集合中的某个数据,并返回这个数据
s1={10,20,30,40,50,60}
print(s1) # {50, 20, 40, 10, 60, 30}
del_num=s1.pop() # 返回的是删除的元素
print(del_num) # 50
print(s1) # {20, 40, 10, 60, 30}
# 交集 &
a={1,2,3,4,5}
b={3,4,5,6}
c=a&b
print(c) # {3, 4, 5}
# 并集 |
d=a|b
print(d) # {1, 2, 3, 4, 5, 6}
数据类型的公共操作
运算符:
推导式
# 作 者:xiao_syuan
# 开发时间:2024-12-26 21:10
# 用while循环
l1=[]
i=0
while i <10:
l1.append(i)
i+=1
print(l1) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 用for循环
l2=[]
for i in range(10):
l2.append(i)
print(l2) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 用列表推导式
l3=[i for i in range(10)] # 列表使用中括号
print(l3) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 元组推导式
t1=(i for i in range(10)) # 元组使用小括号
print(t1) # 直接打印返回地址: <generator object <genexpr> at 0x000001C604603350>
print(tuple(t1)) # (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
# 字典推导式
d1={i:i**2 for i in range(1,5)} # i:i**2为表达式:i : i的平方 ; for i in range(1,5)为表达式的范围
print(d1) # {1: 1, 2: 4, 3: 9, 4: 16}
# 集合推导式
l4=[1,1,2,3]
s1={i**2 for i in l4}
print(s1) # {1, 4, 9}