list相关的函数

来源:互联网 发布:淘宝能寄到国外吗 编辑:程序博客网 时间:2024/06/14 14:33
(1)
any(List)
List 中任何一个元素都有逻辑真,则返回 True,全为假返回 False
all(List)
List 中所有元素都为真时返回 True,否则返回 False
(2)
max(List)
min(List)
返回列表中的最大值 或 最小值
(3)
enumerate() 在列表中同时循环 索引和元素,如:
List=["MaoZedong", "DengXiaoping", "JiangZemin", "HuJintao", "XiJinping"]
for index, entry in enumerate(List):
print index, entry
(4)
求和函数:sum,如 sum([1,2,3,4]) 可求 1+2+3+4
sum(range(101)) 可求 1+2+3+4+...+100 的和
(5)
过滤函数:filter(func,list) 对 list 进行过滤,保留满足条件的,返回一个新的 list,
function 的返回值只能是 True 或 False
>>> def f(x): return x % 2 != 0 and x % 3 != 0
#函数中只有一句可写成一行,但不建议,读起来费劲
>>> filter(f, range(2, 25))
[5, 7, 11, 13, 17, 19, 23]
>>> def f(x): return x != 'a'
>>> filter(f, "abcdef")
'bcdef'
例子:找出 1 到 10 之间的奇数
filter(lambda x:x%2!=0, range(1,11))
涂伟忠 收集整理 2013 年 10 月 20 日--2014 年 11 月 23 日 于 武汉大学
第 8 页/共 28页
(6)
map(func,list) 把 list 中每一个元素操作,返回一个新的 list
>>> def cube(x): return x* *3
# x**3
equals to
x*x*x
>>> map(cube, range(1, 11))
[1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]
>>> def cube(x) : return x + x
...
>>> map(cube , "abcde")
['aa', 'bb', 'cc', 'dd', 'ee']
另外 map 也支持多个 sequence,这就要求 function 也支持相应数量的参数输入:
>>> def add(x, y): return x+y
>>> map(add, range(8), range(8))
[0, 2, 4, 6, 8, 10, 12, 14]
(7)
reduce(func,list [,init]) 如果给 init 的话用 init 和 list[0]用 func 函数处理,得到
的结果再与 list[1]经过 func 处理,依此类推,直到结束,如果不给 init,第一次直
接从 list 中取出两个(即 list[0]和 list[1])
>>> def add(x,y): return x + y
>>> reduce(add, range(1, 11))
55 (注:1+2+3+4+5+6+7+8+9+10)
>>> reduce(add, range(1, 11), 20)
75 (注:20+1+2+3+4+5+6+7+8+9+10)
利用 reduce 求阶乘方法
def f(n): return reduce(lambda x,y:x*y , xrange(1,n+1))
0 0
原创粉丝点击