python入门day08集合

本文详细介绍了Python集合的定义、增删改查操作,以及特殊符号的使用,包括如何创建无重复元素的集合,通过例子演示了去重、添加、删除和集合运算。同时涵盖了可变性和类型转换,如str到int、list到set的转换。
摘要由CSDN通过智能技术生成

集合定义与操作

#集合
list1=[3,5,8,9,1,3,8,9]
print(list1)#[3, 5, 8, 9, 1, 3, 8, 9]
#1.声明集合:空集合只能用set() 不能用{},非空集合两者都可用
s1=set()
print(type(s1))#<class 'set'>
s2={}
print(type(s2))#<class 'dict'>
s2={2,4,5,7,2,7,8}
print(type(s2))#<class 'set'>
#{}声明字典:{key:val,key:val,key:val}
#{}声明集合:{ele,ele,ele}
print(s2)#不重复特点,自动去重#{2, 4, 5, 7, 8}

#2.增删改查
#2.1增加
# add()添加一个 update()添加多个
s1=set()
s1.add('hello')
s1.add('小猪佩奇')
s1.add(3)
print(s1)#无序 {'hello', 3, '小猪佩奇'}
 #update
t1=('林志玲','言承旭')#元组
s1.update(t1)#效果类似添加多个
print(s1)#{3, '小猪佩奇', '林志玲', '言承旭', 'hello'}
s1.add(t1)
print(s1)#{3, ('林志玲', '言承旭'), 'hello', '言承旭', '小猪佩奇', '林志玲'}
#2.2 删除
# remove 元素存在则删除,不存在则报错
# discard()  类似remove() 但是在移除不存在元素时不报错
# pop 删得是第一个元素,与之前相反了
# clear 清空所有内容
s1.remove('言承旭')
print(s1)#{3, ('林志玲', '言承旭'), 'hello','小猪佩奇', '林志玲'}
print(s1.discard('44444'))#None
s1.pop()
print(s1)#{('林志玲', '言承旭'), 'hello','小猪佩奇', '林志玲'}

例子

'''
1.产生101~20得随机数,去除里面重复元素
2.键盘输入一个元素,将此元素从不重复得集合中删除
'''
import random
list1=[]
for i in range(10):#这种方法只给10次机会,你很可能去重后得不到10个,可以用while
    ran=random.randint(1,20)
    list1.append(ran)
set1=set(list1)
print(list1)
print(set1)

num=int(input('输入一个数字'))
set1.discard(num)
print('输出之后:',set1)
'''
[20, 6, 5, 7, 2, 4, 3, 14, 12, 14]
{2, 3, 4, 5, 6, 7, 12, 14, 20}
输入一个数字14
输出之后: {2, 3, 4, 5, 6, 7, 12, 20}
'''

list3=[]
set2=set()
for i in range(10):
    ran=random.randint(1,20)
    set2.add(ran)
print(set2)#{2, 4, 5, 6, 11, 15, 16, 18}排序不重复


list2=[]
i=0
while i<=10:
    ran=random.randint(1,20)
    if ran not in list2:
        list2.append(ran)
        i+=1
print(list2)
print(set(list2))
'''
[11, 14, 13, 1, 6, 12, 20, 2, 3, 19, 8]
{1, 2, 3, 6, 8, 11, 12, 13, 14, 19, 20
'''

其他符号操作

在这里插入图片描述

#其他:符号操作
'''
in
not in
==

'''
set1={1,4,5,7,9,11}
print(7 in set1)#True
set2={1,4,5,7,9,11}
print(set1==set2)#True
set3={1,4,5,7,9,11,0}
print(set1==set3)#False

# set4=set2+set3  不支持+
# set5=set2*2     不支持*

#支持  差集1.- 2.difference()
set5=set3-set2# 差集
print(set5)#{0}
set5=set2-set3
print(set5)#set()空集合
set6={1,2,3,4,5}
set7={1,2}
print(set6.difference(set7))#{3, 4, 5}
print("set6.difference",set6)#set6.difference {1, 2, 3, 4, 5}
set6.difference_update(set7)
print("difference_update",set6)#difference_update {3, 4, 5}

#  交集1. & 2.intersection
print(set6&set7)#{1, 2}
print(set6.intersection(set7))#{1, 2}

#  并集1. | 2.union()
set1={1,4,7,8,9}
set2={1,4,5,0}

print(set1|set2)#{0, 1, 4, 5, 7, 8, 9}
print(set1.union(set2))#{0, 1, 4, 5, 7, 8, 9}


set9={4,6,9,2,11,66}
print(set9)#{2, 66, 4, 6, 9, 11}直接这样不帮我排序,也不是按添加顺序


'''
已知两个列表:
l1=[5,1,2,9,0,3]
l2=[7,2,5,7,9]
找出两个列表得不同元素(两个人各自有的存在一起)
找出两个列表得共同元素

|并集 &交集 -差集
'''
l1=[5,1,2,9,0,3]
l2=[7,2,5,7,9]
s1=set(l1)
s2=set(l2)
print(s1|s2)#{0, 1, 2, 3, 5, 7, 9}
print(s1&s2)#{9, 2, 5}
#对称差集方式一
result=(s1|s2)-(s1&s2)#两人全部有的-两人共同有的==两人各自有的
print(result)#{0, 1, 3, 7}
#对称差集方式二
print(s1^s2)#{0, 1, 3, 7}

在这里插入图片描述

总结

'''
回顾:
数据类型:
1.字符串:
声明:
    ''
    ""
    ''' '''
符号:
    +
    * 
    in 
    not in
    is  比较的是两个对象的id值是否相等,也就是比较俩对象是否为同一个实例对象,是否指向同一个内存地址。
    ==  比较的是两个对象的内容是否相等,默认会调用对象的__eq__()方法。
    is not  
    []
获取字符串元素:
s='hello'
s[0]~s[len(s)-1]
切片获取:
s[start:end[:step]]  左闭右开

内置函数
lower() upper() 
max() min()
len()
replace()
split() 切割成列表 join()  合并列表
find() rfind() lfind()
strip() 去除空格  lstrip rstrip()


a1='h'
a2='e'
a3='hello'
a4='hello'
print(a1+a2)#he
print(a1*2)#hh
print(a1 in a3)#True
print(a2 not in a3)#False
print(a3==a4)#True
print(a3 is a4)#True
print(a3 is not a4)#False


容器
2.列表:list 保存多个元素,有序,可以通过下标找对应得元素
        可以修改(增删改查)
内置函数:
 增加:append() extend() insert()
 删除:remove() pop() clear() del
 sort() reverse() index() count()
3.元组:tuple 保存多个元素,
       不可以修改(只能查)
内置函数:
index() count()
支持下标操作
t=(1,2)
t[0],t[:]

4.字典:dict 保存键值对,键唯一,值可以不唯一
       可以支持对键值对得增删改查
内置函数:
 增加/修改元素: dict1={} dict1[key]=value
 删除:dict1.pop() dict1.popitem()
      dict1.clear()
 查询:items() values() keys()
 
5.集合: set 无序不重复序列
  作用:去重
  符号:- & | ^
  增加:add() update()
  删除:remove() discard() pop() clear()
  运算:差集-difference() 交集&intersection() 并集|union()               对称差集 ^symmetric_difference()
'''

可变与不可变

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
集合也是可变得,改变前后是同一个内存空间
在这里插入图片描述

类型转换

#类型转换
#str()  int() list() dict() set() tuple()

#1.str---->int,list,set,tuple

s='8'
i=int(s)
print(i)#8

s='abc'
l=list(s)
print(l)#['a', 'b', 'c']

s=set(s)
print(s)#{'c', 'b', 'a'}

t=tuple(s)
print(t)#('c', 'a', 'b')

#2.int,list,set,tuple,dict---->str
i=8
s=str(i)
print(s,type(s))#8 <class 'str'>  实际上他在外层包裹了一个引号

l=str(['a','b','c'])
print(l,type(l))#['a', 'b', 'c'] <class 'str'>

#...


#容器类相互转换
#3.list--->set(),tuple(),也可转成字典,但是有条件,必须是[(key,val),(key,val)]
list1=[1,3,4]
print(set(list1))#{1, 3, 4}
print(tuple(list1))#(1, 3, 4)
list2=[(1,'a'),(2,'b')]
print(dict(list2))#{1: 'a', 2: 'b'}
#4.tuple-->list
tuple=(1,2,3,4)
print(list(tuple))#[1, 2, 3, 4]

#5.set--->list
set1={1,2,3}
print(list(set1))#[1, 2, 3]

#6.dict-->list  只把key保存到list中
dict1={1:'a',2:'b'}
print(list(dict1))#[1, 2]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着人口老龄化和空巢化等社会问题的日益严峻,养老问题及以及养老方式的变革成为了当前社会的发展焦点,传统的养老模式以救助型和独立型为主,社会养老的服务质量与老年人的养老需求还存在一定的差距,人们生活水平的提高以及养老多元化需求的增加都需要通过创新和灵活开放的养老模式来应对未来的养老需求,结合目前我国养老模式及养老服务问题的内容的分析,互助养老模式作为一种新型的养老模式结合自主互助的集体养老理念,帮助老年人实现了满足个性需求的养老方案,互助养老模式让老年人具备了双重角色的同时也实现可持续的发展特色。目前我国老年人的占比以每年5%的速度在飞速增长,养老问题及养老服务的提供已经无法满足当前社会养老的切实需求,在养老服务质量和养老产品的变革过程中需要集合多元化的养老模式来满足更多老人的养老需求。 鉴于我国目前人口老龄化的现状以及迅速扩张的养老服务需求,现有的养老模式已经无法应对和满足社会发展的需求,快速增长的养老人员以及养老服务供给不足造成了紧张的社会关系,本文结合当前养老服务的发展需求,利用SSM框架以及JSP技术开发设计一款正对在线互助养老的系统,通过系统平台实现养老机构信息的传递及线上预约,搭建了起了用户、养老机构以及系统管理员的三方数据平台,借助网页端实现在线的养老互助信息查询、养老机构在线预约以及求助需求等功能,通过自养互养的养老模式来帮助老年人重新发现自我价值以及丰富养老的主观能动性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值