一、Python语法学习
题目一
题目内容
列表[1,2,3,4,5],请使用map()函数输出[1,4,9,16,25],并使用列表推导式提取出大于10的数,最终输出[16,25]
考核内容
map函数的使用、列表推导式的使用
代码
def pf(x):
return x**2
list1 =list(map(pf,[1,2,3,4,5]))
print(list1)
list2=[element for element in list1 if element>10]
print(list2)
输出
[1, 4, 9, 16, 25]
[16, 25]
遇到的问题
1.map()函数结果不能直接输出
def pf(x):
return x**2
list1 = map(pf,[1,2,3,4,5])
print(list1)
解决方法:在map前list一下
2.列表表达式的使用
刚开始的想法是循环判断
list2=list()
for i in list1:
if i>10:
list2.append(i)
print(list2)
输出正常然后再考虑列表表达式
list2=[element for element in list1 if element>10]
存在的疑惑
1.在列表表达式中”element for element“前一个element是什么意思,如何解释?
解答:要存入列表内的元素,比如前面改为element+1则只要element满足条件即将当前element+1存入列表
相关改进
存储过滤可以使用filter过滤器和匿名函数lamda
list2 = list(filter(lambda x: x>10, list1))
参考资料
1.map报错:https://blog.youkuaiyun.com/HHTNAN/article/details/72957278
2.推导式:https://blog.youkuaiyun.com/weixin_43790276/article/details/90247423