一:列表推导式
num = [1, 4, -5, 10, -7, 2, 3, -1]
filter_and_squared = []
for number in num:
if number > 0:
filter_and_squared.append(number ** 2)
print(filter_and_squared)
filter_and_squared1 = [x ** 2 for x in num if x > 0]
print(filter_and_squared1)
二:上下文管理器
# with open
f = open('../../xx.xx','a')
f.write("hello world")
f.close()
# 用with
with open("../../xx.xx",'a') as f:
f.write("hello world")
三:装饰器
import time
from functools import wraps
def timethis(func):
'''
Decorator that reports the execution time.
'''
@wraps(func)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(func.__name__, end - start)
return result
return wrapper
@timethis
def countdown(n):
while n > 0:
n -= 1
countdown(100000)
# 在python中
@timethis
def countdown(n):
# 等同于:
def countdown(n):
...
countdown = timethis(countdown)
四:切片
L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
print(L[:3])
五:迭代
d = {'a': 1, 'b': 2, 'c': 3}
for key, value in d:
print("key:value" % (key, value))
六:map函数
def f(x):
return x * x
ret = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
print(ret)
七:闭包
def lazy_sum(*args):
def sum():
ax = 0
for n in args:
ax = ax + n
return ax
return sum