警告
本文最后更新于 2022-05-21,文中内容可能已过时。
list, tuple, set, dict
1
2
3
4
|
[i for i in range(10)]
(i for i in range(10))
{i for i in range(10)}
{i:i for i in range(10)}
|
lambda
1
2
3
4
|
lambda arguments : expression
x = lambda a : a + 10
print(x(5))
|
sort
1
2
3
4
|
arr=[1,8,3,6,5,4,7,2,9]
sorted(arr)
list.sort(reverse=True|False, key=myFunc)
|
1
2
3
4
5
6
7
8
9
10
11
12
|
def myFunc(e):
return e['year']
cars = [
{'car': 'Porsche', 'year': 1963},
{'car': 'Audi', 'year': 2010},
{'car': 'BMW', 'year': 2019},
{'car': 'Volvo', 'year': 2013}
]
cars.sort(key=myFunc)
cars.sort(key=lambda e: e['year'])
|
cache
可以用于记忆化搜索。
请不要使用cache,除非你知道自己在做什么!
1
2
3
4
5
6
7
8
9
|
from functools import lru_cache
@lru_cache(None)
def add(x, y):
print("calculating: %s + %s" % (x, y))
return x + y
add.clear_cache()
print(add(1, 2))
print(add(1, 2))
print(add(2, 3))
|
引用
重要!python变量默认为引用,错误使用会带来麻烦
1
2
3
4
|
>>> a=5;id(a)
2094838213040
>>> a=6;id(a)
2094838213072
|
1
2
3
4
|
>>> arr=[1,2,3];id(arr)
2094872788160
>>> arr[2]*=-1;id(arr)
2094872788160
|
1
2
3
4
|
>>> arr=[[0]*5 for i in range(2)];arr
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
>>> arr[1][1]=1;arr
[[0, 0, 0, 0, 0], [0, 1, 0, 0, 0]]
|
1
2
3
4
|
>>> arr=[[0]*5]*2;arr
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
>>> arr[1][1]=1;arr
[[0, 1, 0, 0, 0], [0, 1, 0, 0, 0]]
|
作用域
在if
语句等内定义的变量,外部可用;
注意global
、nonlocal
关键字的使用