因为主编程语言不是 python,很多语法容易忘,特意记录一下。
循环
普通循环
range 是左闭右开区间
1 2
| for i in range(0, 10): print(i)
|
逆序
1 2
| for i in range(10, 0, -1): print(i)
|
循环变量在循环体外面依然可以用
1 2 3 4
| for i in range(0, 10): pass
print(i)
|
enumerate
返回的元组第一个参数是 index
1 2 3
| s = "abcd" for i,c in enumerate(s):
|
数组
切片
1 2 3 4 5 6 7 8 9 10
| b = a[:]
b = a[:4] b = a[0:4] b = a[0:4:1]
b = a[:4:2]
|
数组比较
直接比就可以了
字符串
按照字典序排序
1 2
| a = "dcba" b = "".join(sorted(a))
|
转换成 asc 码
切片
同数组
字符串是否是数字
字符串是否是由数字和字母组成
转大小写
collections
Counter
可以用来统计字符出现的个数
1 2
| a = ["A", "B", "A", "C", "A"] b = collections.Counter(a)
|
返回的是个字典
1
| {'A': 3, 'B': 1, 'C': 1}
|
defaultdict
相比于 dict 可以在 key 不存在的时候返回一个默认值,而不是报错
1 2 3 4 5 6
| a = collections.defaultdict(list) a = collections.defaultdict(int) a = collections.defaultdict(set) a = collections.defaultdict(set)
a = collections.defaultdict(lambda: 10)
|
数学相关
开方
会返回一个浮点数
1 2
| import math a = math.sqrt(16)
|
乘方
其他
zip
将可迭代的对象打包成元组
1 2 3 4
| a = [1, 2, 3] b = [2, 3, 4] c = [4, 5, 6] d = list(zip(a, b, c))
|
输出
1
| [(1, 2, 4), (2, 3, 5), (3, 4, 6)]
|
reduce
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
1 2 3 4
| s = reduce(lambda x, y: x+y, [1,2,3,4,5])
s = sum([1,2,3,4,5])
|
map
map 会根据提供的函数对指定序列做映射
1 2
| map(lambda x: x ** 2, [1, 2, 3]) [1, 4, 9]
|
all
判断一个集合是否全部为 true/非空