-
例如,要从一个list [1, 4, 6, 7, 9, 12, 17]中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:
def is_odd(x): return x % 2 == 1
然后,利用filter()过滤掉偶数:
filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
结果:[1, 7, 9, 17]
查看全部 -
这节想破头也不会,后面要再看看
查看全部 -
s.strip(rm) 删除 s 字符串中开头、结尾处的 rm 序列的字符。
查看全部 -
# Filename : test.py # author by : www.runoob.com str = "www.runoob.com" print(str.upper())# 把所有字符中的小写字母转换成大写字母 print(str.lower())# 把所有字符中的大写字母转换成小写字母 print(str.capitalize())# 把第一个字母转化为大写字母,其余小写 print(str.title())# 把每个单词的第一个字母转化为大写,其余小写
查看全部 -
同一个名字的变量,只要在不同的py文件中就不会相互影响;模块的名字就是py文件的文件名
解决同名模块的问题:把同名的模块放到不同的包中。
在文件系统中:包就是文件夹,包可以有多级;模块就是py.文件
如何区分包和普通目录:1.包下面有个_init_.py 文件,并且每层都要有,这样Python才会把这个目录当作包来处理
查看全部 -
这一节还是没有理解的
查看全部 -
就算是在函数中改变了字符的大小写用来判断 也不会修改输出的字符的形式 只是在中间阶段变换了它们来进行比较
查看全部 -
首字母大写,其余字母小写的两种函数式
return s.capitalize()
return s[0].upper()+s[1:].lower()
查看全部 -
这个地方还有疑问
查看全部 -
一个简单的高阶函数:
def add(x, y, f): return f(x) + f(y)
如果传入abs作为参数f的值:
add(-5, 9, abs)
根据函数的定义,函数执行的代码实际上是:
abs(-5) + abs(9)
查看全部 -
内层函数引用外层函数的变量,然后返回内层函数的情况,称为闭包。(Closure)
想正确使用闭包:要确保引用的局部变量在函数返回之后不能变
查看全部 -
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]
如果希望把list的每个元素都作平方,就可以用map()函数:
因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:
def f(x): return x*x print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
输出结果:
[1, 4, 9, 10, 25, 36, 49, 64, 81]
查看全部 -
但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
查看全部 -
# -*- coding: UTF-8 -*-
#返回闭包不能引用循环变量
#假如返回闭包使用的是循环变量,那么返回函数导致的延迟的计算
#会让计算结果错误
#如果一定要引用循环变量怎么办?方法是再创建一个函数
#用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已
#绑定到函数参数的值不变。
def count():
fs = []
for i in range(1, 4):
def f(i):
def g():
return i * i
return g
fs.append(f(i))
return fs
f1, f2, f3 = count()
print f1(), f2(), f3()
查看全部 -
def cmp_ignore_case(s1, s2):
if str.upper(s1) > str.upper(s2):
return 1
elif str.upper(s1) < str.upper(s2):
return -1
return 0
print sorted(['bob', 'about', 'Zoo', 'Credit'],cmp_ignore_case)
#在比较字符串的时候,“A” > "B" 返回的是False
#因为 “A” 的ASCII编码比 “B”的小,所以才排在前面
#由此可知 sorted命令在传入 return 1 的时候会将X放在Y后面,return -1 的时候 会将Y往前移,既放在X前面。
查看全部
举报