day06

                                               第六天的学习总结

1,深度拷贝和浅拷拷贝

拷贝就是一个复制的过程,把一个值赋值给另一个值,这个是值的拷贝就是拷贝的地址,如果被拷贝的值有变化

那么拷贝的值就会变化所以说不是深度拷贝和浅拷贝,

什么是浅拷贝

浅拷贝就是在拷贝的过程,把所有的东西都复制过来了,就不会在变化了.除非在复制的过程中复制的有可变化的类型

那样,如果改变被复制的量中的可变类型,那么复制后的可变的类型就会发生变化.

例如:ls1=[1,2,3,4,5]

拷贝:ls2 = ls1.copy() 

如果改变sl1中的[0] 为10 ==> ls1[0] = 10  那么sl2中的[0] 不会发生变化.如图

 

但是:ls1 = [1,2,3,4,5,[10,20]]

拷贝:ls2 = ls1.copy() 

这样的话如果改变sl1中的[5] ===> ls1[5][0] = 100 

那么sl2中的 ls2[5][0]值也会发生变化

这上面的两种改变,是因为第一种改变sl1中的值,它的值是变了,但是1这个值的地址是不会变的,所以ls2中的值不会变

第二种就是改变了 列表 中的值,意思就是把里边的地址给改变了

 什么是深拷贝

from copy import deepcopy

deepcopy(变量名)

深拷贝的内容是不会发生变化的,

因为深拷贝的不变的量是和浅拷贝一样的,只是拷贝的可变的量的时候会强制开辟一个新的空间

保存这个可变的量. 

所以说深拷贝,拷贝的量是不会跟着被拷贝的量的变化发生变化的.

元组类型

元组就是使用括号来表示,元组重要的就是两个方法

元组是可以存放所有类型的

常规操作

元组如果只存一个数据,那么(1,)必须要加逗号,不然就会认为是一个常量,不是元组

取值是通过索引来取值

拼接就是两个元组的相加,?

方法有

1.count(0) 这个方法是表示的是对象0 在元素中出现的次数

2.index(0,4,len(tl)) 对象0在区间4 到末尾出现的次数 如果没有就会报错

元组不可变的分析

a=(10,'abc',[100])

a[0] = 100 这种的方式不支持 不管是可变与不可变的类型都是不能被改变的

 

字典类型

字典就是一个容器,存放多个值的变量

在Python中

单列容器(list tuple)

双列容器(map) dict  只有一个双列容器,存储数据是成对出现 key -- value 存储方式

key 是取值的唯一性,key一旦被确定,就需要唯一确定(不能被改变)

字典中value是任意类型.其中key是不能被重复,重复后就会被覆盖.value可以为多个值

字典的定义

可以是空字典

d1 = {}

d2 =dict()

使用map映射创建字典

d3 = dict({"a":1,"b":2})

set

1.定义
s1 = set()
s2 = set({1, 2, 3})

2.重点:数据具有唯一性
# i) 单列数据集合:str,list,tuple,set 双列:dict
# ii) 无序存储:无key无index,无法取值
# iii) 可变数据类型,内部可以存放任意类型数据,但数据具有唯一性

3.运算
p_set = {'a', 'b', 'c', 'egon'}
l_set = {'x', 'y', 'z', 'egon'}

# 交集 &
res = p_set & l_set
print(res)
res = p_set.intersection(l_set)
print(res) # {'egon'}

# 并集
res = p_set | l_set
print(res)
res = p_set.union(l_set)
print(res) # {'z', 'c', 'y', 'x', 'b', 'a', 'egon'}

# 差集
res = p_set - l_set
print(res) # {'a', 'b', 'c'}
res = l_set.difference(p_set)
print(res) # {'x', 'z', 'y'}

# 对称差集
res = p_set ^ l_set
print(res)
res = p_set.symmetric_difference(l_set)
print(res) # {'y', 'a', 'b', 'x', 'z', 'c'}

'''

'''
了解:
sup_set = {1, 2, 3, 4, 5}
sub_set = {1, 2, 3}
temp_set = {3, 2, 1}
flag_set = {7, 8, 9}

print(sup_set > sub_set) # True
print(sup_set < sub_set) # False
print(temp_set == sub_set) # True
# 两个set是否没有交集
res = flag_set.isdisjoint(temp_set) # True

 

转载于:https://www.cnblogs.com/WBaiC1/p/10730002.html

### 关于苍穹外卖 Day06 的教程或资料 目前,关于苍穹外卖项目的官方文档和公开资源主要集中在前五天的内容上[^2]。然而,在实际开发过程中,后续的课程通常会涉及更复杂的业务逻辑和技术细节,例如分布式事务处理、微服务架构优化以及性能调优等内容。 如果需要了解 **苍穹外卖 Day06** 的相关内容,可以尝试以下几个方向: #### 1. 微服务框架扩展 在第六天的学习中,可能会深入讲解如何通过 Spring Cloud 或 Dubbo 实现微服务之间的通信机制。这部分内容可能包括但不限于: - 使用 Feign 进行声明式 REST 调用。 - 配置负载均衡策略以提高系统的可用性和稳定性。 ```java @FeignClient(name = "order-service") public interface OrderServiceClient { @GetMapping("/orders/{id}") public ResponseEntity<Order> getOrderById(@PathVariable Long id); } ``` 上述代码片段展示了如何定义一个简单的 Feign 客户端来调用远程订单服务。 --- #### 2. 数据库分片与读写分离 随着项目规模的增长,数据库的压力也会逐渐增大。因此,Day06 可能会引入 ShardingSphere 或 MyCat 来实现数据分片和读写分离的功能。以下是配置文件的一个简单示例: ```yaml spring: shardingsphere: datasource: names: ds_0,ds_1 ds_0: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/db_0?serverTimezone=UTC&useSSL=false username: root password: 123456 ds_1: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver jdbc-url: jdbc:mysql://localhost:3306/db_1?serverTimezone=UTC&useSSL=false username: root password: 123456 ``` 此部分重点在于提升数据库访问效率并降低单点故障风险。 --- #### 3. 缓存设计优化 缓存作为高性能系统的重要组成部分,其合理应用能够显著减少数据库查询次数。在 Day06 中,预计会对 Redis 缓存的设计进一步深化,比如利用 Redis Stream 处理实时消息队列或者采用布隆过滤器防止缓存穿透等问题。 以下是一个基于 RedisConfiguration 类的基础设置实例: ```java @Configuration public class RedisConfiguration { @Bean public LettuceConnectionFactory redisConnectionFactory() { return new LettuceConnectionFactory(); } @Bean public StringRedisTemplate stringRedisTemplate(LettuceConnectionFactory factory) { StringRedisTemplate template = new StringRedisTemplate(factory); return template; } } ``` 这段代码用于初始化 Redis 连接池及相关模板工具类。 --- #### 4. 日志监控体系搭建 为了更好地追踪线上问题,构建完善的日志收集与分析平台显得尤为重要。ELK (Elasticsearch, Logstash, Kibana) 堆栈可能是该阶段的重点之一,帮助开发者快速定位异常情况并提供可视化报表支持。 --- 尽管当前未找到明确标注为“苍穹外卖 Day06”的具体材料[^1],但从整体技术路线推测以上几个方面均有可能成为教学的核心主题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值