首页 > 代码库 > 数据连接基本总结 day10

数据连接基本总结 day10

一.定义集合

集合:可以包含多个元素,用逗号分割;

集合的元素遵循三个原则:

1.每个元素必须是不可变类型

2.没有重复的元素

3.无序

 

1.update

描述:扩展集合

参数:要添加的集合

返回值:None(原集合会被修改)

s1={‘apple‘,‘voivo‘,‘oppo‘,‘huwei‘}
s2={‘hshshs‘}
s3=s1.update(s2) # 扩展集合s1
print(type(s3),s3)# 查看返回值
print(type(s1),s1)# 打印扩展后的集合s1

输出结果

1
2
<class ‘NoneType‘None
<class ‘set‘> {‘knight‘‘sky‘‘pudding‘‘lisa‘‘william‘}

2、copy()

描述:复制集合

参数:无

返回值:返回一个和原集合一样的新的集合

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.copy()  # 对集合s1进行复制
print(type(s1),s1)
print(type(s2),s2)

输出结果

技术分享
<class bool> True
<class bool> False
View Code

3、pop()

描述:随机删除集合中的一个元素

参数:无

返回值:返回被删除的元素

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.pop()    # 随机删除集合中的一个元素
print(type(s1),s1) 
print(type(s2),s2)

输出结果

技术分享
<class set> {lisa, knight, william}
<class str> pudding
View Code

 

4、clear()

描述:清空字典

参数:无

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.clear()  # 清空集合
print(type(s1),s1)
print(type(s2),s2)
技术分享
<class set> set()
<class NoneType> None
View Code

 

5、remove()

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.remove(‘lisa‘)
print(type(s1),s1) 
print(type(s2),s2)  # 返回值为空

输出结果

技术分享
<class set> {william, pudding, knight}
<class NoneType> None
View Code

6、add()

描述:为集合增加元素

参数:element  元素

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.add(‘sky‘)
print(type(s1),s1)
print(type(s2),s2)  # 返回值为空

输出结果

<class set> {pudding, lisa, william, knight, sky}
<class NoneType> None

 

7、difference()

描述:差集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个差集

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘sky‘,‘william‘,‘hello‘,‘knight‘}
s3 = s1.difference(s2)
print(type(s3),s3)  # 得到一个差集。
print(type(s1),s1)  # 原集合不更新

输出结果

技术分享
<class set> {lisa, pudding}
<class set> {pudding, lisa, knight, william}
View Code

 

8.difference_update

述:差集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘sky‘,‘william‘,‘hello‘,‘knight‘}
s3 = s1.difference_update(s2)
print(type(s3),s3)  # 返回None
print(type(s1),s1)  # 原集被更新

输出结果

技术分享
<class NoneType> None
<class set> {pudding, lisa}
View Code

 

9、discard()

描述:删除集合中指定的元素

参数:element  元素

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = s1.discard(‘william‘)
print(type(s2),s2)   
print(type(s1),s1) 

输出结果

技术分享
<class NoneType> None
<class set> {lisa, knight, pudding}
View Code

 

10、intersection()

描述:交集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个交集

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘william‘,‘xxxx‘}
s3 = s1.intersection(s2)
print(type(s3),s3)  # 得到一个交集
print(type(s1),s1)  # 原集合不更新

输出结果

技术分享
<class set> {william}
<class set> {william, lisa, knight, pudding}
View Code

 

11、intersection_update()

描述:交集运算,原集合更新

参数:set  要对比的集合

返回值:None(原集合会被修改)

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘william‘,‘xxxx‘}
s3 = s1.intersection_update(s2)
print(type(s3),s3)  # 返回None
print(type(s1),s1)  # 原集合更新

输出结

技术分享
<class NoneType> None
<class set> {william}
View Code

 

12、union()

描述:并集运算,原集合不更新

参数:set  要对比的集合

返回值:得到一个新的集合,两个集合中都有的元素都合并成一个

s1 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s2 = {‘william‘,‘pudding‘,‘xxxxxx‘}
s3 = s1.union(s2)
print(type(s3),s3)   # 返回得到一个新的集合,两个集合中都有的元素都合并成一个。
print(type(s1),s1)   # 并集运算,原集合不更新

输出结

技术分享
<class set> {xxxxxx, knight, william, lisa, pudding}
<class set> {pudding, lisa, knight, william}
View Code

 

 

13、issubset()

描述:判断原集合是否是要对比的集合的子集,如果是则返回True,否则返回False

参数:set  要对比的集合

返回值:得到一个布尔值

s1 = {‘william‘,‘pudding‘}
s2 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s3 = s1.issubset(s2)    # s1是否是s2的子集,所以返回True
print(type(s3),s3)
#--------------------------------------
s4 = {‘william‘,‘xxxxx‘}
s5 = {‘william‘,‘lisa‘,‘knight‘,‘pudding‘}
s6 = s4.issubset(s5)    # s4不是s5的子集,所以返回False
print(type(s6),s6)
技术分享
<class bool> True
<class bool> False
View Code

 

14.利用setdefault解决重复赋值

1:key存在,则不能赋值,key不存在则设置默认值

2:key存在,返回是key对应的已有的值,key不存在,返回的则是要设置的默认值

d={}
print(d.setdefault(‘a‘,1))

d={‘a‘:2222}
print(d.setdefault(‘a‘,1))

eg

s=‘hello alex alex say hello sb sb‘
dic={}
words=s.split()
for word in words:
    dic.setdefault(word,s.count(word))
    print(dic)

利用集合,去掉重复,减少循环次数

s =‘hello alex alex say hello sb sb‘
dic={}
word = s.split()
words_set=set(words)
for word in words_set:
    dic[word]=s.count(word)
    print(dic)

 

 

  in:字符串,列表,元组,字典,集合

  for:字符串,列表,元组,字典,集合

  解压:字符串,列表,元组,字典,集合

 

 

布尔值的获取

所有的数据类型,都自带布尔值,也就是说我们可以直接用数据当做判断条件,比如:

x=10
if x:
    print(‘ok‘)#会打印ok,因为x自带的布尔值为True

 

其他数据类型自带的布尔值是什么?

  所有的数据类型自带的布尔值无非是True和False两种

  而空字符串,空字典,空列表,空集合等值都为空的,以及None,False的布尔值为False

  其余数据类型的值都为True

数据连接基本总结 day10