WEB开发网
开发学院软件开发Python 使用python的列表解析以及函数式计算来简化代码 阅读

使用python的列表解析以及函数式计算来简化代码

 2010-08-19 00:00:00 来源:WEB开发网   
核心提示:在我们的代码里经常会和列表,元组,使用python的列表解析以及函数式计算来简化代码,字典等数据结构打交道,可以这么说,怎么做?最简单的办法 ls=list(set(ls))2.假如有列表:books=[{"name":"C#从入门到精通","price":

在我们的代码里经常会和列表,元组,字典等数据结构打交道,可以这么说,在很大程度上我们的代码就是对这些数据结构进行处理的过程,在 Python中对列表,元组,字典等内置的数据结构的处理是很方便的事情,python借鉴了Lisp中的很多函数式计算的方法来处理列表,可以极大的简化我们的代码。

set() 将元组,列表 转化成没有重复项的集合

list()将集合,元组转化成列表

tuple()将集合,列表转化成元组

列表解析:[返回值 for 元素 in 列表 if 条件] 比如 [num for num in xrange(100) if num%2==0] 返回0~99之间的偶数列表

map(func,list):将list的每一个元素传递给func的函数,这个函数有一个参数,且返回一个值,map将每一次调用函数返回的值组成一个新列表返回

filter(func,list):将list的每一个元素传递给func的函数,这个函数有一个参数,返回bool类型的值,filter将返回True的元素组成新列表返回

reduce(func,list):将list的元素,挨个取出来和下一个元素通过func计算后将结果和再下一个元素继续计算,比如

ls=[1,3,5,7]

reduce(lambda x,y:x+y,ls)

的计算过程就是 1+3=4 然后4+5得到结果9,再加7,以此类推,最后返回最终计算的结果

下面我们用实际的例子来看如何运用这几个函数

1.列表去重

如果有一个列表ls=[1,3,2,5,2,1,3,4,6]需要去掉其中重复的项,怎么做?

最简单的办法   ls=list(set(ls))

2.假如有列表:

books=[
        {"name":"C#从入门到精通","price":23.7,"store":"卓越"},
        {"name":"ASP.NET高级编程","price":44.5,"store":"卓越"},
        {"name":"C#从入门到精通","price":24.7,"store":"当当"},
        {"name":"ASP.NET高级编程","price":45.7,"store":"当当"},
        {"name":"C#从入门到精通","price":26.7,"store":"新华书店"},
        {"name":"ASP.NET高级编程","price":55.7,"store":"新华书店"},
      ]

1 2  下一页

Tags:使用 python 列表

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接