Python全栈学习Day7 集合and基础数据类型及补充

昨日内容复习

小数据池
针对字符串与数字
int -5~256
str 特殊字符*不超过20

今日: 集合

(用的少,但必须了解)
1.集合中的元素必须为不可变的数据类型
2.无序
3.不重复

集合的增删查,没有改


add()
无序

set1 = {'ma', 'sheng', 'de'}
set1.add('boy')
print(set1)

在这里插入图片描述
update

set1 = {'ma', 'sheng', 'de'}
set1.update('abc')
print(set1)

在这里插入图片描述

pop()
随机删除,有返回值

set1 = {'ma', 'sheng', 'de'}
set1.pop()
print(set1)

remov()
按元素删除

set1 = {'ma', 'sheng', 'de'}
set1.remove('ma')
print(set1)

clear()
清空

set1 = {'ma', 'sheng', 'de'}
set1.clear()
print(set1)

del
删除整个集合

set1 = {'ma', 'sheng', 'de'}
del set1


只能用for循环去查

set1 = {'ma', 'sheng', 'de'}
for i in set1:
    print(i)

集合的各种集

交集的两种方式:

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
set3 = set1 & set2 
set4 = set1.intersection(set2)
print(set3, set4)

并集的两种方式:

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
set3 = set1 | set2
set4 = set1.union(set2)
print(set3, set4)

反交集:
除了交集以外的

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
set3 = set1 ^ set2
set4 = set1.symmetric_difference(set2)
print(set3, set4)

差集
set1独有的

set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}
set3 = set1 - set2
set4 = set1.difference(set2)
print(set3, set4)

子集
set1 是 set2 的子集
返回Bool

set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 4, 5, 6, 7, 8}
set3 = set1 < set2
set4 = set1.issubset(set2)
print(set3, set4)

超集
set2是set1的超集,对应set1是set2的子集

set1 = {1, 2, 3, 4, 5}
set2 = {1, 2, 3, 4, 5, 6, 7, 8}
set3 = set2 > set1
set4 = set2.issuperset(set1)
print(set3, set4)

如何将集合变成不可变的数据类型

只读

s = frozenset('barry')
print(s)
print(type(s))

在这里插入图片描述

基础数据类型汇总及补充

str

isspace()
返回布尔值

   s = '    '
    f = s.isspace()
    print(f)

list

例题:
1.删除偶数位置上的数据

lis = [11, 22, 33, 44, 55]
for i in range(len(lis)):
    if i+1 < len(lis):
        del lis[i+1]
        print(lis)

2.删除字典中带‘k’的键值内容
第一种方法

dic = {'k1': 'v1', 'k2': 'v2', 'a3': 'v3'}
l = []
for i in dic:
    if 'k' in i:
        l.append(i)
for i in l:
    del dic[i]
print(dic)

第二种方法

dic = {'k1': 'v1', 'k2': 'v2', 'a3': 'v3'}
dic1 = {}
for i in dic:
    if 'k' not in i:
        dic1.setdefault(i,dic[i])
dic = dic1
print(dic)

什么转化为BOOL全为false

数字:0
字符串:’’
列表:[]
元祖:()
字典:{}
集合:()
其他都为true

面试题

去除重复的值

li = [1, 2, 33, 33, 2, 1, 4, 5, 66]
set1 = set(li)
li = list(set1)
print(li)

元祖中若有一个元素且不加逗号该是什么元素就是什么元素

tu = (1)
tu1 = (1,)
print(tu, type(tu))
print(tu1, type(tu1))

在这里插入图片描述
一个是数字一个是元祖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值