# Python3匿名函数字典排序、生成式与

## 1. 参数匿名函数字典排序

### 函数的参数:

```*args           tuple(1,)
**kwargs        dict{"k" : "v"}

fun(*args,**keargs)
fun(1,2,3,4,5,a=10,b=40)```

### 匿名函数:

```def fun(x,y)
return x*y```

lambda方法： r=lambda x,y:x*y ss求绝对值（abs）

### 高阶函数：

map(f,list) 返回每个元素通过结果计算完的value的list

```def f(x):
return x*x```

map(f,[1,2,3,4,5]) reduce(f,[1,2,3,4,5]) filter(lamdba x:x%2 == 1,[1,2,3,4,5]) sorted函数:

```sorted(...)
sorted(iterable,cmp=None,key=None,reverse=False) -->new sorted list```

### 对字典进行排序：

```mm = dict(a=1,b=10,c=3,d=9)
print sorted(mm.iteritems(),key = lamdba d:d[1],reverse = True)```
```#/usr/bin/env python
# -*- coding:utf-8 -*-
# @time   :2018/1/28 18:55
# @Author :FengXiaoqing
# @file   :dicSort.py

def sortDictValue(dict1):
print(sorted(dict1.items(),key=lambda d:d[1],reverse=False))

if __name__ == '__main__':
aaa = dict(a=100,b=10,c=50,d=1)
l = list()
l = sortDictValue(aaa)
print(l)
print(sortDictValue(l))```

## 2. 生成式和生成器

### 列表生成式格式:

```[exp for val in collection if condition]

[x*x for x in xrange(10) if x*x%2 == 0]```

### 生成器（generator）：

`(exp for val in collection if condition)`

### 生成式和生成器的区别:

```#/usr/bin/env python
# -*- coding:utf-8 -*-
# @time   :2018/1/28 22:34
# @Author :FengXiaoqing
# @file   :production.py

a = [x*x for x in range(1,11) if x%2 ==0]
print (a)
print(type(a))

b = (x*x for x in range(1,11) if x%2 ==0)
print (b)
print(type(b))
for i in b:
print(i)
print('#'*20)

def test(l):
for i in l:
yield i
print("OK i = {0}".format(i))

m = test([1,2,3,4,5,6])
for i in m:
print(i)

[4, 16, 36, 64, 100]
<class 'list'>
<generator object <genexpr> at 0x0000000002160D00>
<class 'generator'>
4
16
36
64
100
####################
1
OK i = 1
2
OK i = 2
3
OK i = 3
4
OK i = 4
5
OK i = 5
6
OK i = 6```

## 3. 装饰器

### 装饰器：

#### 装饰器例子：

```#！/usr/bin/env python
import datetime

def hellow(fun):
def preHello():
print("########start##########“)
fun()
print("########end###########“)
return preHello```

```def startend(func):
def start():
print("#########start#############")
func()
print("#########end#############")
return start
def hello():
print("hello world!")
hello = startend(hello)
hello()```

```def startend(func):
def start():
print("#########start#############")
func()
print("#########end#############")
return start

@startend
def hello():
print("hello world!")
hello()```

0 条评论

• ### Python基础之函数和模块

在函数定义下的第一行，添加连续的三对双引号，在双引号中间进行文字注释； 在函数调用处可以用ctrl+q，查看函数说明。 注释如下：

• ### python之day3(文件操作、字符转

f=open(“yesterday”,”r”,encoding=”utf-8”)  #以只读模式打开文件

• ### python3-2笔记

一.深复制和浅复制 1.引用和赋值 引用是一个值，指向某些数据 列表引用是指向一个列表的值 当你将列表赋给你一个变量时，实际上是将列表的‘引用’赋给了改变变量。...

• ### 实验四 Python函数编程实验

函数是组织好的，可重复使用的，用来实现单一或相关联功能的代码段，它能够提高应用的模块性和代码的重复利用率。Python定义函数使用def关键字，格式如下：

• ### Python闭包函数和装饰器

1.概念：在一个外函数中定义了一个内函数，内函数运用了外函数的临时变量，并且外函数的返回值是内函数的引用 示例代码：演示函数嵌套和闭包。

• ### Python基础之函数和模块

在函数定义下的第一行，添加连续的三对双引号，在双引号中间进行文字注释； 在函数调用处可以用ctrl+q，查看函数说明。 注释如下：

• ### python之day3(文件操作、字符转

f=open(“yesterday”,”r”,encoding=”utf-8”)  #以只读模式打开文件

• ### 【编程课堂】装饰器浅析

Python 拥有丰富强大的功能和表达特性，其中之一便是装饰器，装饰器能够在不改变函数、方法、类本身的情况下丰富他们的功能。 比如，我们有一个函数 func ，...

• ### Python基础语法（三）——函数

抽象 抽象 抽象是数学中非常常见的概念。举个例子： 计算数列的和，比如：1 + 2 + 3 + ... + 100，写起来十分不方便，于是数学家发明了求和符号∑...

• ### python3-2笔记

一.深复制和浅复制 1.引用和赋值 引用是一个值，指向某些数据 列表引用是指向一个列表的值 当你将列表赋给你一个变量时，实际上是将列表的‘引用’赋给了改变变量。...