文章目录
一、filter
接着昨天的学习filter
这个函数算是比较熟悉的了,和js的功能效果基本一致:对于传入的列表的每一个元素执行目标函数,返回函数中返回值为True的元素,组成一个新的列表
def f(item):
filter(f, list)
作业一:生成质数集合
#!/usr/bin/env python3
#encoding=utf-8
def getSu():
def getJi():
n = 1
while True:
n = n+2
yield n
def format(n):
return lambda x:x%n>0
def primes():
yield 2
it = getJi()
while True:
n = next(it)
yield n
it = filter(format(n),it)
for n in primes():
if n < 1000:
print(n)
else:
break
作业二:请利用filter()筛选出回数:
def getJi():
n = 9
while True:
n = n+1
yield n
def format(x):
return str(x)[::-1] ==str(x)
def primes():
yield 9
it = getJi()
while True:
n = next(it)
yield n
it = filter(format,it)
for n in primes():
if n < 1000:
print(n)
else:
break
后记(字符串反转)
在完成作业的过程中,发现了字符串反转的操作,这是之前没讲过的,记下来
1. [::-1]
学切片的时候没有提到这个
[::2] // 表示从头开始,每两个取一个
[::-2] // 表示从右边开始,每隔两个取一个
2.reverse()
s = "123"
l = list(s) // reverse()不能在str上调用,所以要专程list了使用
l.reverse()
3.reduce (lambda配合更爽)
from functools import reduce
reduce(lambda a,b:b+a,"123")