f = animals_fruit.get('cat',get_default)() print(f) f1 = animals_fruit.get('horse',get_default)() print(f1)
12.2 列表推导式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# 根据列表a 推导出 a 元素平方的新list #方法一: for循环(不再举例); 方法二:高阶函数 a = [1,2,3,4,5] a_list = list(map(lambda x: x*x,a)) print(a_list)
#列表推倒式 a0 = [i*i for i in a ] # [1, 4, 9, 16, 25] # ** 表示平方; 后还可加 if 进行条件控制筛选 a1 = [i**2 for i in a if i >= 3] #只对a中元素大于3的进行平方运算 print(a1) #[9, 16, 25]
a3 = (i*2 for i in a if i >= 2)#因为元组不可变所以得到的是generator 对象 print(tuple(a3)) #(4, 6, 8, 10)
#元组、集合、字典也可以进行推倒 b = {1,2,3} b1 = {i+2 for i in b } print(b1) # {3, 4, 5}
可迭代对象(iterable): 可以用 for in 进行遍历的;不一定是迭代器; 迭代器:可以被for in 循环遍历的,一定是迭代对象; a.可以对迭代器使用next(),但是不能对list、tuple、dict使用(不受迭代器); b.对于实例化的迭代器,它只能被遍历一次,具有一次性; c.如果import copy,在一个实例化对象没有被遍历前,对其进行拷贝 books_copy = copy.copy(books)(浅拷贝,深拷贝:copy.deepcopy()),则拷贝对象还可以被遍历;