python idls_Python之第五天的努力--is id == 代码块,集合

01.回顾

1.字典:

查询速度快,存储大量的关联数据

键:必须是不可变的数据类型(int str bool tuple)

值:任意数据类型,对象

2.增删改查

增:setdefualt(),dic['age'] = 18

删:pop 键(可以设置返回值),clear 清空,del dic['name']

改:dic['name'] = 'hhh'

查:dic['name'] dic.get('name') dic.keys() dic.values() dic.items()

3.字典的嵌套

02. id is ==

# id 身份证号

# i = 100

# s = 'hhh'

# print(id(i))

# print(id(s))

# == 比较两边的值是否相等

# l1 = [1,2,3]

# l2 = [1,2,3]

# print(l1 == l2)

# s1 = 'hhh'

# s2 = 'hhh '

# print(s1 == s2)

# is 判断内存地址是否相同

# l1 = [1,2,3]

# l2 = [1,2,3]

# print(id(l1))

# print(id(l2))

# print(l1 is l2)

s1 = 'hhh'

s2 = 'hhh'

print(id(s1))

print(id(s2))

print(s1 is s2)

# id 相同,值一定相同

# 值相同,id不一定相同

03.代码块

代码块:我怕们所有的代码都需要依赖代码块执行。

一个文件就是一个代码块

交互式命令下一行就是一个代码块

04两个机制:

同一个代码块下,有一个机制。不同的代码块下,遵循另一个机制

同一个代码块下的缓存机制

前提条件:同一个代码块内

机制内容

适用对象:int bool str

具体细则:所有的数字,bool,几乎所有的字符串

i1 = 1000

i2 = 1000

i3 = 1000

print(id(i1))

print(id(i2))

print(id(i3))

l1 = [1,2,3]

l2 = [1,2,3]

print(id(l1))

print(id(l2))

优点:提升性能,节省内存。

不同代码块的缓存机制:小数据池

前提条件:同一个代码块内

机制内容:

适用对象:int bool str

具体细则:-5~256数字,bool,满足规则的字符串。

优点:提升性能,节省内存。

05.集合 set

容器型的数据类型,它要求它里面的元素是不可变的数据,但是它本身是可变的数据类型。集合是无序的。{}。

集合的作用:

列表的去重。

关系测试:交集并集,差集....

# 集合的创建

# set1 = set({1, 3, 'hhh', False})

# set1 = {1, 3, 'zs', 4, 'ls', False, 'ww'}

# print(set1) # 无序

# 空集合:

# print({}, type({})) # 空字典

# set1 = set() # 空集合

# print(set1,type(set1))

# 集合有效性测试

# set1 = ({[1,2,3], 3, {'name': 'zs'}})

# print(set1) # 报错

# 增

set1 = {'zs', 'ls', 'ww', 'zl', 'kk', 'tt'}

# add

# set1.add('xx')

# print(set1)

# updata迭代的增加

# set1.update('asdf')

# print(set1)

# 删

# set1 = {'zs', 'ls', 'ww', 'zl', 'kk', 'tt'}

# remove

# set1.remove('ww')

# print(set1)

# pop 随机删除

# set1.pop()

# print(set1)

# 变相改值

# set1 = {'zs', 'ls', 'ww', 'zl', 'kk', 'tt'}

# set1.remove('ww')

# set1.add('hhh')

# print(set1)

# 交集 (& 或 intersection)

# set1 = {1,2,3,4,5}

# set2 = {4,5,6,7,8}

# print(set1 & set2)

# 关系测试: ***

# 并集 (|或 union)

# set1 = {1,2,3,4,5}

# set2 = {4,5,6,7,8}

# print(set1 | set2)

# 差集 (- 或 difference)

# set1 = {1,2,3,4,5}

# set2 = {4,5,6,7,8}

# print(set1 - set2)

# 反交集 (^ 或 symmetric_difference)

# set1 = {1,2,3,4,5}

# set2 = {4,5,6,7,8}

# print(set1 ^ set2)

# 子集

# set1 = {1,2,3}

# set2 = {1,2,3,4,5,6}

# print(set1 < set2)

# 超集

# set1 = {1,2,3}

# set2 = {1,2,3,4,5,6}

# print(set2 > set1)

# 列表去重 # 不保持数据 ***

li = [1, 1, 2, 'hhh', 2, 2, 'hhh', 3, 4, 5, 6, 'hhh', 6, 6]

set1 = set(li)

li = list(set1)

print(set1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值