type
status
date
slug
summary
tags
category
icon
password
一、推导式(Comprehensions)
1. 列表推导式
2. 字典推导式
3. 集合推导式
4. 生成器表达式
- 这里要生成器和列表的区别,列表推导式直接得到一个列表,而生成器会得到一个对象,如果想要生成列表,需要用
list()
包裹
二、异常处理:try
except
finally
Python 提供了结构化的异常处理,用于捕获和处理运行时错误。
try
块:放置可能抛出异常的代码;
except
块:捕获并处理指定异常;
finally
块:无论是否发生异常,都会执行清理等操作。
三、断言与显式抛出异常
1. assert
assert
用检查条件:当条件为
False
时,会抛出 AssertionError
。2. raise
显式抛出自定义异常:
四、函数的定义与调用
1. 定义函数
def
:定义关键字
函数名
:如 hello
形参
:函数体内使用的参数名,如name
、age
2. 参数类型
- 位置参数(positional):按顺序传入
- 关键字参数(keyword):
hello(name="四岁")
- 默认值参数:在定义时指定默认值
- 可变参数:
args
、*kwargs
3. 函数调用
在函数名后面加上
()
即执行该函数。五、文件操作:open
打开文件时,常用参数有:
mode
:文件打开模式'r'
:只读'w'
:写入(会覆盖)'a'
:追加'b'
:二进制模式
encoding
:字符编码,如'utf-8'
使用
with
上下文管理器,可确保文件自动关闭,无需显式 close
。六、常见内置函数汇总
函数 | 功能简介 |
len(obj) | 返回序列或集合长度 |
range() | 生成整数序列 |
enumerate | 同时获取索引和值 |
zip | 并行迭代多个可迭代对象 |
map | 对可迭代对象的每个元素应用函数 |
filter | 过滤可迭代对象中的元素 |
sorted | 返回排序后的新列表 |
sum | 对数值序列求和 |
max/min | 返回最大值/最小值 |
all/any | 判断可迭代对象中元素是否全部/至少一个为真 |
type | 返回对象类型 |
isinstance | 判断对象是否为指定类型 |
help | 查看帮助文档 |
dir | 列出对象的属性和方法 |
七、每日一题
题目:3169. 无需开会的工作日
给你一个正整数
days
,表示员工可工作的总天数(从第 1 天开始)。另给你一个二维数组 meetings
,长度为 n
,其中 meetings[i] = [start_i, end_i]
表示第 i
次会议的开始和结束天数(包含首尾)。返回员工可工作且没有安排会议的天数。
注意:会议时间可能会有重叠。
示例 1:
输入:days = 10, meetings = [[5,7],[1,3],[9,10]]
输出:2
解释:
第 4 天和第 8 天没有安排会议。
示例 2:
输入:days = 5, meetings = [[2,4],[1,3]]
输出:1
解释:
第 5 天没有安排会议。
示例 3:
输入:days = 6, meetings = [[1,6]]
输出:0
解释:
所有工作日都安排了会议。
解题
1、首先看到题目,我只能想到先对开会的时间进行排序,然后看每个会议之间也没有空闲的天数,有就加上,没有就继续往后遍历
- 首先进行排序
2、先记录下来最开始的一天
3、接下来开始遍历会议,考虑一下遍历的是每个会议开始,所以要使用
meetings[i][0]
,那么- 写到这里突然觉得不对,2好像写错了,会议第一天的空闲时间应该是
t-1
,更新2,3如下
4、然后返回t1累加后的值,就是空闲的时间了
- 为什么示例2不对?答案是1,我算错了是0😨
- 发现问题了,我忽略了最后没有会议和可安排天数的差,那我应该怎么做呢?加上去?
- 知道了,之间在返回值中加一个
days - t
完美运行
5、看看官方的题解吧
- 原来排序默认是第一个数的升序啊,不需要定义
lambda v: v[0]
,看起来他没有处理第一次会议,而是直接放进循环中处理,确实比我的更方便,他直接定义开始时间为0,然后进行比较,比较聪明的点在于,他是直接用总天数去减,但是我有点看不懂l是干嘛的,问了下gpt,看起来是用一个区间来表示了开会的时间,再从总天数中减去被占用的时间,相当于我们是反着来的,我算空闲,他算开会,最后减去就行了。
- 所有基本上是属于同一种题解,我感觉今天的题比昨天的要简单点,希望后面不要为难我,以我现在的水平,遇上困难题型,可以洗洗睡了😥
- 作者:sisui
- 链接:https://www.sisui.me//article/py-basic-cheatsheet-leetcode3169
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章