type
status
date
slug
summary
tags
category
icon
password
Last edited time
Jun 2, 2024 09:11 AM
😀
多关键字排序,位运算,Counter,dafaultdict,字符串常量,reduce,格式化输出,多组输入

0 本节习题一览

多关键字排序习题:937. 重新排列日志文件
位运算习题:401. 二进制手表

1 多关键字排序

💡
list.sort()函数是稳定的,即排序前后值相同的数据位置不发生改变
💡
sorted(x)方法来对可迭代的序列排序生成新的序列,该函数同样是稳定的
💡
上述函数都接受指定reverse参数,默认为升序False,传值为True则为降序排列

1.1 简易匿名函数

1.2 自定义比较函数

💡
可实现较为复杂的排序规则,并且可以使用外部变量
多关键字排序习题:937. 重新排列日志文件

2 位运算

💡
快速进行乘2除2
💡
节省空间
💡
快速实现二进制(01)枚举
💡
求n的第k位数字: n >> k & 1
notion image
左移举例
notion image
bin() 转二进制
位运算习题:401. 二进制手表

3 计数 Counter

💡
Counter()collections里面的一个类,作用是计算出字符串或者列表等中不同元素出现的个数,返回值可以理解为一个字典
💡
键不存在时不会报错,默认返回0
用法示例:

4 默认字典 defaultdict

💡
当字典里的key不存在但被查找时,返回的不是keyError而是指定数据类型的默认值
用法示例:

5 字符串常量

ascii_lowercase
'abcde……xyz'
ascii_uppercase
'ABCDE……XYZ'
notion image

6 reduce

reduce有三个参数:
  • function:有两个参数的额函数, 必需参数
  • sequence: 元组、列表等可迭代对象, 必需参数
  • inital: 初始值, 可选参数
执行过程:
在迭代sequence(tuplelistdictionarystring等可迭代类型)的过程中,
  1. 首先把 前两个元素传给 函数参数,函数加工后,
  1. 然后把得到的结果和第三个元素作为两个参数传给函数参数,
  1. 函数加工后得到的结果又和第四个元素作为两个参数传给函数参数,依次类推
如果传入了 initial值, 那么首先传的就不是 sequence的第一个和第二个元素,而是 initial值和 第一个元素。

7 print格式化输出

1. 对齐

2. 填充

3. 精度控制

4. 数字格式化

输出结果:

8 多组输入

💡
这种方法适用于交互式输入,逐行读取输入直到输入结束(例如,输入空行或使用 EOF(Ctrl+D 或 Ctrl+Z)终止输入)。
OJ快速入门Python常用数据类型
Loading...