python随记学习笔记
Posted 行码棋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python随记学习笔记相关的知识,希望对你有一定的参考价值。
--------不断更新中----------
⭐️本笔记仅自用,如要学习详细知识,请移步其他文章⭐️
内置函数
1. filter
过滤函数
过滤列表元素, 第一个参数类型为 函数类型
lambda
表达式可用于指定过滤列表元素的条件。
filter(lambda x: x % 3 == 0, [1, 2, 3])
指定将列表 [ 1 , 2 , 3 ] [1,2,3] [1,2,3]中能够被 3 3 3整除的元素过滤出来,其结果是 [ 3 ] [3] [3]
数据类型相关
字典
1. 键和值的类型
字典的键必须取不可变的数据类型,如字符串,元组,数字
值可以取任意数据类型
字符串
1. 字符串排序
因为字符串为不可变类型,无法对字符串进行排序。
考虑将字符串变为字符数组,对字符数组进行排序,然后再将字符数组拼接为字符串
s = "dsadw"
# 方式一
li = list(s)
li.sort()
print(''.join()) # 拼接
# 方式二
print(''.join(sorted(s)))
两种方式用了不一样的排序函数,下面做一下对比:
sort():
- 为
list
内置的函数,只能对列表进行排序 - 对列表排完序之后,列表本身改变。即输出列表是排完序的列表
sorted():
- 可以对所有可迭代对象进行排序,对字符串排序后产生的是排完序的字符数组
- 拍完序之后,可迭代对象本身不发生变化,因为产生了新的排完序的可迭代对象
2. maketrans和translate
一般 maketrans() 方法需要配合 translate() 方法一起使用。
str.maketrans(intab,outtab[,delchars])
intab
– 需要转换的字符组成的字符串。
outtab
– 转换的目标字符组成的字符串。
delchars
可选参数
,表示要删除的字符组成的字符串。 返回一个字符映射转换表供 translate() 方法调用。
#!/usr/bin/python3
intab = "aeiou"
outtab = "12345"
deltab = "thw"
trans1 = str.maketrans(intab,outtab) # 创建字符映射转换表
trans2 = str.maketrans(intab,outtab,deltab) #创建字符映射转换表,并删除指定字符
test = "this is string example....wow!!!"
print(test.translate(trans1))
print(test.translate(trans2))
输出结果:
th3s 3s str3ng 2x1mpl2…w4w!!!
3s 3s sr3ng 2x1mpl2…4!!!
代码技巧
1. lambda表达式
lambda
能够定义的函数非常受限。函数的结果必须能够作为单独的表达式来计算,这意味着你不能使用多路 if... elif... else
比较,或者 try... except
语句。
和C++一样,lambda
就是一个匿名函数,可以把它当成一个函数对象。
定义函数
# 定义加法函数
add = lambda x, y : x + y
res = add(1, 3) # res = 4
传递函数参数
lambda
表达式可用于指定过滤列表元素的条件。
filter(lambda x: x % 3 == 0, [1, 2, 3])
指定将列表 [ 1 , 2 , 3 ] [1,2,3] [1,2,3]中能够被 3 3 3整除的元素过滤出来,其结果是 [ 3 ] [3] [3]
2. 三元运算符
三元运算符类似C++的三元运算符? :
, 可以有效进行代码压行
代码示例:
求100以内的奇数和
for i in range(100):
res += i if i & 1 else 0
翻译之后:
for i in range(1000):
if i & 1:
res += i
else:
res += 0
包或模块使用
random
random.uniform(a, b)
随机小数生成,生成 [ a , b ] [a,b] [a,b]范围小数
以上是关于python随记学习笔记的主要内容,如果未能解决你的问题,请参考以下文章