推导式
列表推导式
list1 = [i for i in range(10)]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
元组推导式
tuple1 = (i for i in range(10)) # generator
for i in tuple1:
print(i, end = " ")
# 0 1 2 3 4 5 6 7 8 9
字典推导式
dict1 = {"a":10,"B":20,"C":True,"D":"hello world","e":"python教程"}
dict2 = {key:value for key, value in dict1.items() if key.islower()}
dict2
# {'a': 10, 'e': 'python教程'}
集合推导式
set1 = {i**2 for i in [1,2,3]}
set1
# {1, 4, 9}
匿名函数
# 普通函数
def fun_o(x, y):
return x * y
# 匿名函数
fun_n = lambda x, y: x * y
fun_o(2, 3) == fun_n(2, 3)
# True
切片
python的切片操作是一个很酷炫的功能,但是有时候又容易搞糊涂,尤其是在使用numpy的时候,其实只要记住四个字:左闭右开
a = [i for i in range(10)] # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
a[5:9] # [5, 6, 7, 8] 右边的数字9无法取到
a[5:] # [5, 6, 7, 8, 9] 该方法可以取到9
a[-3:-1] # [7, 8] 同样,数字9无法取到
a[-3:] # [7, 8, 9]
断言
pwd = "@@@"
try:
assert pwd.isalnum(), "密码只能是数字或字母"
except AssertionError:
print("这就是断言错误啦")
else:
print("没有错误嘻嘻")
finally:
print("断言错误只有在条件为false时触发")
# 这就是断言错误啦
# 断言错误只有在条件为false时触发