匿名函数

有名函数:

def func1(x):
return x**
print(func1)
结果:
<function func1 at 0x00000000005C3E18>

匿名函数:

func2=lambda x: x**
print(func2)
结果:
f1=lambda x,y:x+y
print(f1(,))
结果:
f2=lambda x:x>
print(f2())
结果:
True
salaries={
'egon':,
'alex':,
'wupeiqi':,
'yuanhao':
} print(max(salaries,key=lambda x:salaries[x]))
结果:
alex

内置函数

字典的运算:最小值min,最大值max,排序sorted

迭代字典,取得是key,因而比较的是key的最大和最小值

可以取values,来比较
>>> max(salaries.values())
>>> min(salaries.values())
但通常我们都是想取出,工资最高的那个人名,即比较的是salaries的值,得到的是键
>>> max(salaries,key=lambda k:salary[k])
'alex'
>>> min(salaries,key=lambda k:salary[k])
'yuanhao'

也可以通过zip的方式实现
salaries_and_names=zip(salaries.values(),salaries.keys())

先比较值,值相同则比较键
>>> max(salaries_and_names)
(100000000, 'alex')

salaries_and_names是迭代器,因而只能访问一次
>>> min(salaries_and_names)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: min() arg is an empty sequence

salaries={
'egon':,
'alex':,
'wupeiqi':,
'yuanhao':
} print(max(salaries)) #迭代字典,取得是key,因而比较的是key的最大和最小值
print(max(salaries.values()))
结果:
yuanhao
salaries={
'egon':,
'alex':,
'wupeiqi':,
'yuanhao':
} res=zip(salaries.values(),salaries.keys())
for i in res:
print(i)
结果:
(, 'egon')
(, 'alex')
(, 'wupeiqi')
(, 'yuanhao')
salaries={
'egon':,
'alex':,
'wupeiqi':,
'yuanhao':
}
res=zip(salaries.values(),salaries.keys())
print(max(res)[-])
结果:
alex
print(max([,,,,]))
print(
max(
i for i in range()
)
)
结果:

# min函数

# map:映射

l=[,,,]
m=map(lambda x:x**,l)
print(list(m))
结果:
[, , , ]
names=['alex','wupeiqi','yuanhao']
print(list(map(lambda item:item+'_SB',names)))
结果:
['alex_SB', 'wupeiqi_SB', 'yuanhao_SB']

#reduce:合并

from functools import reduce

res=
for i in range():
res+=i
print(res) print(reduce(lambda x,y:x+y,range(),))
结果:

# filter:过滤

names=['alex_sb','yuanhao_sb','wupeiqi_sb','egon']
print(list(filter(lambda name:name.endswith('_sb'),names)))
结果:
['alex_sb', 'yuanhao_sb', 'wupeiqi_sb']

#divmod函数  (求商和余数)

print(divmod(,))

total_count=
per_count= res=divmod(total_count,per_count)
if res[] > :
page_count=res[]+ print(page_count)
结果:
(, )

#enumerate函数

l=['a','b','c']

for i in enumerate(l):
print(i) dic={'name':'egon','age':}
for i in enumerate(dic):
print(i)
结果:
(, 'a')
(, 'b')
(, 'c')
(, 'name')
(, 'age')
s=set({,,})
s.add() s.pop()
print(s)
结果:
{, , }

s=frozenset({1,2,3})

print(globals() is locals())
结果:
True
s1='hello123123'
s2=' hello123123' print(hash(s1))
print(hash(s2))
结果:
-
-
print(type())
print(isinstance(,int))
结果:
<class 'int'>
True

# iter([1,2,3]) #[1,2,3].__iter__()

print(pow(,,)) #**%
结果:
for i in range(-,):
print(i)
结果:
-
-
-
-
-
for i in range(,,): #
print(i)
结果:
for i in range(,,-): #
print(i)
结果:
l=['a1','a2','a3','a4','a5','a6','a7','a8','a9']
print(l[::])
print(l[::])
print(l[::-])
结果:
['a3', 'a5']
['a1', 'a3', 'a5', 'a7', 'a9']
['a9', 'a8', 'a7', 'a6', 'a5', 'a4', 'a3', 'a2', 'a1']
l1=[,,,]
print(list(reversed(l1)))
print(l1)
l1=list(reversed(l1))
结果:
[, , , ]
[, , , ]
print(round(3.3456,))
结果:
3.346
l=['a1','a2','a3','a4','a5','a6','a7','a8','a9']
print(l[::]) x=slice(,,)
print(l[x]) l1=[,,,,]
print(l1[x])
结果:
['a3', 'a5']
['a3', 'a5']
[, ]
print(sum(i for i in range()))
print(sum([,,,]))
结果:

#sorted

sorted(iterable,key=None,reverse=False)

l=[,,,,-]
print(sorted(l)) #从小到大
print(sorted(l,reverse=True)) #从大到小
结果:
[-, , , , ]
[, , , , -]

# vars()

name='alex'
res='SB' if name == 'alex' else 'shuai'
print(res) egg_list=['鸡蛋%s' %i for i in range()] #列表解析
print(egg_list) egg_g=('鸡蛋%s' %i for i in range()) #生成器表达式
print(egg_g) s='hello'
print([True for i in s if i == 'e'])
结果:
shuai
['鸡蛋0', '鸡蛋1', '鸡蛋2', '鸡蛋3', '鸡蛋4', '鸡蛋5', '鸡蛋6', '鸡蛋7', '鸡蛋8', '鸡蛋9']
<generator object <genexpr> at 0x0000000002194990>
[True]

递归

'''
递归调用:
    在调用一个函数的过程中,直接或者间接调用了该函数本身

'''

直接调用:

def func():
print('====>func')
func() func()

间接调用:

def foo():
print('from foo')
bar() def bar():
print('from bar')
foo() foo()

来个栗子:

def age(n):
if n == :
return
return age(n+)+ print(age())
结果:
一个列表嵌套很多层,用递归取出所有的值
l=[,[,,[,,[,,[,,[,,[,]]]]]]]
def func(l):
for i in l:
if isinstance(i,list):
func(i)
else:
print(i) func(l)
结果:

补充内容

求商品总价:

文件内容:

apple
tesla
mac
lenovo
chicken

low版:

moneys=[]
with open('goods',encoding='utf-8') as f:
for line in f:
l=line.split()
price=float(l[])
count=int(l[])
moneys.append(price * count) # print(moneys)
print(sum(moneys))
结果:
196060.0

列表解析:

with open('goods',encoding='utf-8') as f:
l=[float(line.split()[]) * int(line.split()[]) for line in f]
print(sum(l))
结果:
196060.0

生成器表达式:

with open('goods',encoding='utf-8') as f:
print(sum(float(line.split()[]) * int(line.split()[]) for line in f))
结果:
196060.0

模拟数据库查询

low版:

goods_info=[]

with open('goods',encoding='utf-8') as f:
for line in f:
l=line.split()
name=l[]
price=l[]
count=l[]
goods_info.append({'name':name,'price':price,'count':count}) print(goods_info)
结果:
[{'name': 'apple', 'price': '', 'count': ''}, {'name': 'tesla', 'price': '', 'count': ''}, {'name': 'mac', 'price': '', 'count': ''}, {'name': 'lenovo', 'price': '', 'count': ''}, {'name': 'chicken', 'price': '', 'count': ''}]

列出价格大于3000的商品信息:

with open('goods',encoding='utf-8') as f:
goods_info=[{'name':line.split()[],'price':float(line.split()[]),'count':int(line.split()[])} for line in f \
if float(line.split()[]) > ]
print(goods_info)
结果:
[{'name': 'tesla', 'price': 100000.0, 'count': }, {'name': 'lenovo', 'price': 30000.0, 'count': }]

最新文章

  1. Steamroller
  2. python进程池:multiprocessing.pool
  3. BirdError
  4. EntityFramework 4/5/6 中执行自定义SQL语句
  5. hdu 4091 线性规划
  6. phpcms 02
  7. 02~ 一步一步教你使用 SVN之SVN 的介绍
  8. create Context Menu in Windows Forms application using C# z
  9. javascript——四种函数调用形式
  10. 简单仿京东导航下拉菜单 javascript
  11. Python金融应用编程(数据分析、定价与量化投资)
  12. PyQt4中的Treeview
  13. nginx设置默认server
  14. 图解Go select语句原理
  15. Android内存管理篇 - adj的概念与进程adj级别控制
  16. Ado.Net实体数据模型EF,如何在代码中添加数据库连接密码
  17. Laravel API 限速异常 HTTPException Too Many Attemps
  18. casper Dom的操作
  19. Shell初学(二)变量及数组
  20. Cobbler 自动化部署系统

热门文章

  1. HTML5浏览器
  2. Raspbian 在虚拟机上运行,运行Flask,供宿主机访问
  3. boost tuple
  4. python中将&#39;12345&#39;转换为12345,不要使用int
  5. (转)PAL制式和NTSC制式的区别
  6. R 数据分析
  7. feignClient传参(参数为对象类型)的一个坑
  8. Oracle下定时删除归档日志脚本
  9. Oracle 11g 体系结构 --SGA PGA 前后台进程
  10. &lt;读书笔记&gt;《Web前端开发最佳实践》