关于函数, 从字符串里查找特定内容, 有用于查找特定组合的函数, 有去除空格的函数, 还有用什么来间隔字符串的函数, 有判断是否为有效数字或字符的函数, 有判断是否全为字符的函数, 有判断是否全为数字的函数, 有将数据改成小写的函数, 有将数据改成大写的函数, 有判断字符串是否以特定字符开始的函数, 也有判断字符串是否以特定字符结尾的函数, 有写入函数有写入文件的函数, 有在数据尾部插入数据的函数, 有在指定位置之前插入数据的函数, 有将字符串转换成列表的函数, 有在数据中查找第一次特定值位置的函数, 有将数据的每一个提取出来加入列表的函数, 有统计数据中某个元素出现次数的函数, 有将数据中第一次出现的特定字符删掉的函数, 有将数据的第2个元素删掉的函数, 有去掉数据指定位置的数据且有返回值的函数, 有去掉原数据中特定元素的函数, 有列表逆序的函数, 有判断某个数据是否为某种类型的函数, 有得到某数绝对值的函数, 有删除列表中索引为2的元素的函数, 有对数据排序的函数, 有创建一个元组的函数, 有查找并返回索引的函数, 有split逆操作的函数以建立字典, 有创建字典的函数, 有清楚字典中所有项的函数, 有复制一个字典且会修改所有字典的函数, 有复制一个字典但只会修改当前字典的函数, 有查询字典中元素的函数, 有将所有字典返回一个列表的函数, 有与items函数作用相同的函数, 有移除字典中元素的函数, 有用一个字典项更新另一个字典项的函数, 有什么都不做的函数, 有执行一段代码的函数, 有计算表达式的函数, 有返回单字符字符串int值的函数, 有创造英语并行迭代新序列的函数, 有自定义函数, 还有加载扩展库以及常用的几种常用的内置函数。
li = ['baby','honey'] for item in li: print item for item in enumerate(li,12): print item for item in enumerate(li,13): print item[0],item[1]s.() 用来格式化字符的一种新的方法 示例如下:
1 s = ‘I am {0}{1}’
2 print s.(‘’,‘!’)
输出的结果: I am !
map()和函数的结合使用 map(,list)
•()函数
一种函数, 属于内置的, 同时还是一个别的高阶函数。这种函数接收的诸如参数方面, 跟 map() 较相似, 是一个函数 f, 还有一个 list, 然而其行为跟 map() 不一样, 该函数传入的这个函数 f 必然得接收两个参数, 且会针对 list 的每个元素反复去调用函数 f, 最终返回那么一个结果值。
例如,编写一个f函数,接收x和y,返回x和y的和:
def f(x, y):
x + y
调用 (f,
1, 3, 5, 7, 9
)时,函数将做如下计算:
先计算头两个元素:f(1, 3),结果为4;
再把结果和第3个元素计算:f(4, 5),结果为9;
再把结果和第4个元素计算:f(9, 7),结果为16;
再把结果和第5个元素计算:f(16, 9),结果为25;
由于没有更多的元素了,计算结束,返回结果25。
实际该计算乃是针对 list 的全部元素去达成求和操作, 尽管有着内置的求和函数 sum(), 然而, 借助()来实施求和同样是极为轻易的。
它能够接纳第3个可选择的参数, 将之用作计算的起始值。要是把起始值设定成100, 来展开计算:
(f,
1, 3, 5, 7, 9
, 100)
结果将变为125,因为第一轮计算是:
计算初始值和第一个元素:f(100, 1),结果为101。
利用()进行连乘的代码块
def f(x,y): return x * y print reduce(f,[2,4,5,7,12])•()函数(过滤函数)
()函数是, 内置的, 另外一个可发挥效用的, 高阶函数, ()函数接纳, 一个函数 f, 以及一个list, 这个函数 f 的功用在于,针对每个元素展开判断, 给出 True或者 False, ()依据判断所得结果, 自动剔除不符合条件的元素, 返回由符合条件元素所构成的新list。
例如,要从一个list
1, 4, 6, 7, 9, 12, 17
中删除偶数,保留奇数,首先,要编写一个判断奇数的函数:
def is_odd(x): return x % 2 == 1然后,利用()过滤掉偶数:
(,
1, 4, 6, 7, 9, 12, 17
结果:
1, 7, 9, 17
#利用过滤函数filter()进行删除None和空字符串 def is_not_empty(s): return s and len(s.strip()) > 0 l = ['test','str',None,'','','END'] print filter(is_not_empty,l) # 利用函数filter()过滤出1~100中平方根是整数的数 import math l = [] for x in range(1,101): l.append(x) def is_int(x): r = int(math.sqrt(x)) return r * r == x print filter(is_int,l)或者
import math def is_sqr(x): r = int(math.sqrt(x)) return r*r==x print filter(is_sqr, range(1, 101))•自定义排序函数
内置的 ()函数可对list进行排序:
>>>(
36, 5, 12, 9, 21
5, 9, 12, 21, 36
但, 它是一个高阶函数, 它能够接收一个比较函数用以实现自定义排序, 比较函数的定义为, 传入两个待比较的元素x, y, 若x应当排在y的前面, 此时返回-1, 若x应当排在y的后面, 这时返回1。若x和y相等, 返回0。
因此,如果我们要实现倒序排序,只需要编写一个函数:
def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0这样,调用 () 并传入 就可以实现倒序排序:
>>> (
36, 5, 12, 9, 21
, )
36, 21, 12, 9, 5
可以针对字符串开展排序操作, 字符串在默认状况下是依照ASCII大小予以比较的:
>>> (
‘bob’, ‘about’, ‘Zoo’, ‘’
‘’, ‘Zoo’, ‘about’, ‘bob’
‘Zoo’排在‘about’之前, 这存在一个原因, 是由于‘Z’的ASCII码比‘a’小。
在对字符串进行排序之际, 有时将大小写忽略掉之后再排序会更契合习惯。请借助()高阶函数, 达成忽略大小写排序的算法。
l = ['bob','about','Zoo','Credit'] def cmp_ignore_case(s1,s2): u1 = s1.upper() u2 = s2.upper() if u1 < u2: return -1 if u1 > u2: return 1 return 0 print sorted(l,cmp_ignore_case)zip() 函数的使用的介绍
eval(str) 函数可以将str转换成一个表达式执行
和()的使用
#以字符串的形式导入模块和函数 temp = 'sys' model = __import__(temp) foo = 'path' function = getattr(model,foo) print function