Python小技巧 1

Python小技巧

1.关于深复制与浅复制
a=[[12,23,12],[12,22,3,3]]

b=copy.copy(a)

a[0][0]=99

print(b)

在这里插入图片描述
这样改变a还会改变b,要想不改变,要用b = copy.deepcopy(a);对一维数组而言,可以用copy.copy,对多维数组不能。

2.一个列表中有多个tuple或list,现在以tuple/list中第二个元素来进行排序

T = sorted(b,key = lambda b:b[1],reverse = True) ,True是降序,false是升序,b是要排序的数组,T是排序后的结果

### 蓝桥杯 Python 编程技巧与小窍门 在蓝桥杯竞赛中,Python 作为一种高级编程语言,因其简洁易读的语法和强大的库支持,成为许多参赛者的首选。以下是一些针对蓝桥杯 Python 编程的技巧和小窍门: #### 1. 熟悉输入输出格式 蓝桥杯题目通常对输入输出格式有严格要求。例如,某些题目需要保留两位小数输出结果。可以使用 `print("%.2f" % ans)` 来确保输出符合要求[^2]。 #### 2. 利用 Python 的内置函数 Python 提供了许多强大的内置函数,能够简化代码逻辑并提高效率。例如: - 使用列表推导式快速生成满足条件的列表。 - 使用 `map` 和 `zip` 函数处理多组数据。 - 使用 `sorted` 函数进行排序,并通过参数 `key` 自定义排序规则。 ```python # 示例:使用列表推导式筛选偶数 numbers = [1, 2, 3, 4, 5] even_numbers = [x for x in numbers if x % 2 == 0] ``` #### 3. 动态规划与递归优化 动态规划是解决背包问题等经典算法题的重要方法。在实现时,可以通过减少状态空间或优化转移方程来降低时间复杂度。此外,对于递归问题,建议结合记忆化搜索避免重复计算[^3]。 #### 4. 快速幂算法 快速幂是一种高效的计算幂运算的方法,尤其适用于大指数场景。其核心思想是将底数不断平方,同时将指数减半[^3]。 ```python def fast_power(base, exponent, mod): result = 1 while exponent > 0: if exponent % 2 == 1: result = (result * base) % mod base = (base * base) % mod exponent //= 2 return result ``` #### 5. 取模与取余的区别 在竞赛中,取模和取余操作容易混淆。需要注意的是,取余向零方向舍入(`fix`),而取模向负无穷方向舍入(`floor`)。例如,`-7 % 4 = -3`,而 `-7 mod 4 = 1`[^3]。 #### 6. 时间复杂度优化 在解决多重循环问题时,应尽量减少不必要的嵌套层数。如果可能,可以通过二分查找、空间换时间等策略优化算法性能[^3]。 #### 7. 学习路线与资源 制定合理的学习计划对于备赛至关重要。可以从基础语法入手,逐步掌握常用算法和数据结构。同时,参考历年真题可以帮助熟悉比赛题型[^4]。 #### 8. 注意细节 编程前先理清思路,明确每一步的具体操作。对于多维数组问题,可以考虑将其转换为一维数组以简化逻辑[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值