Python之路,Day11 = Python基础11

内置函数
divmod(x, y)             # (商, 模)
enumerate(可迭代对象)          # (序号,值)
eval(字符串)            # 把字符串当成命令执行
set({1,2,3})              # 可变集合(增删改)
frozenset({1,2,3})              # 不可变集合
globals()               # 查看全局变量
locals()               # 查看局部变量
isinstance(3, int)             # 查看3是不是int类型
pow(3,3)                 # 3**3
pow(3,3,2)             # 3**3 % 2
reversed()              # 翻转
round(3.3456, 3)          # 保留3位小数后四舍五入

x = slice(2,5,2)         # 获得一个切片对象
l[x]
上面两句等同于: l[2:5:2], 但上面定义的 x 可以提供给好多个列表使用

zip():拉链函数
  s = 'hello'
  l = [1,2,3,4,5,6]
  zip(s,l)
  一 一对应,多的就不要了

map:映射,每个元素执行lambda表达式结果
l=[1,2,3,4]
m = map(lambda x:x**2, l)
生成一个迭代器,循环后结果
print(list(m))
>>[1,4,9,16]

reduce:合并
from functools import reduce
reduce(合并规则(func),可迭代对象range(100),初始值)

filter
filter(lambda, 列表) # 打印返回结果为True的值

sorted:排序,没有改变原来的顺序
sorted(list)
sorted(list, reverse=True)

匿名函数
  func2 = lambda x:x**2 # 默认return
  print( func2(2) )

等同于:
def func(x):
  return x**2
print( func1(2) )

递归

1.直接或间接调用自己

2.有停止的条件

3.规模应该每次变小

=========================================================

1 文件内容如下,标题为:姓名,性别,年纪,薪资

egon male 18 3000
alex male 38 30000
wupeiqi female 28 20000
yuanhao female 28 10000 要求:
从文件中取出每一条记录放入列表中,
列表的每个元素都是{'name':'egon','sex':'male','age':18,'salary':3000}的形式 2 根据1得到的列表,取出薪资最高的人的信息
3 根据1到的列表,取出最年轻的人的信息
4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
5 根据1得到的列表,过滤掉名字以a开头的人的信息
 info_list = [{'name':i.split()[0],'sex':i.split()[1], 'age':i.split()[2], 'salary':i.split()[3]} for i in open('info',encoding='utf-8')]

 print(max(info_list,key=lambda x:x['salary']))     # 最大值
print(min(info_list,key=lambda x:x['age'])) # 最小值 def func1(x):
x['name'] = x['name'].capitalize()
return x # print(list(map(lambda x:x['name'].capitalize(), info_list)))
print(list(map(func1, info_list))) # 首字母大写,目测有点问题,等会儿解决下 print(list(filter(lambda x:not x['name'].startswith('a'), info_list)))
# 6 使用递归打印j(前两个数的和得到第三个数)
# 0 1 1 2 3 5 8...
def nbqe(a=0, b=1):
if a < 50000:
print(a, end=' ')
c = a + b
nbqe(b, c) nbqe() # =====================================
l = [0, ]
def fbnq(a=0, b=1):
l[0] = a
return b,a+b a = 0
b = 1
total = 100000
for i in range(total):
a, b = fbnq(a, b) print('第%s个值为:%s'%(total, l[-1]))===
												

最新文章

  1. intelliJ idea debug模式下启动慢的原因
  2. TextView 字数限制
  3. AlwaysOn可用性组测试环境安装与配置(二)--AlwaysOn配置(界面与T-SQL)
  4. Cwinux简介及用法简述
  5. CSS 相邻选择器(七)
  6. hdu 2102 A计划(BFS,基础)
  7. AngularJS学习-初识
  8. linux mint 下mysql中文支持问题
  9. 从Http它被连接到WebSocket
  10. 小白浅论JAVA数组中“for加强版”
  11. 【转】Entity Framework 5.0系列之约定配置
  12. Tcl与Design Compiler (五)——综合库(时序库)和DC的设计对象
  13. set的便捷操作
  14. 双接口(回调)promise cb
  15. CSS——超链接颜色设置
  16. sklearn.linear_model.LinearRegression
  17. 全面理解虚拟DOM,实现虚拟DOM
  18. 算法笔记_170:历届试题 分糖果(Java)
  19. m2014-android-&gt;安卓开发在线案例
  20. python 中字典的操作(增、删、改、查)

热门文章

  1. java ThreadPoolExecutor 异常捕获
  2. js 默认事件取消
  3. SolidWorks新建三维零件
  4. shell脚本中:单引号和双引号的区别
  5. photoshop钢笔工具简单记录
  6. 阿里云重磅推出物联网安全运营中心Link SOC
  7. linux中hadoop组件启动日志存放问题
  8. Kafka命令行操作
  9. ueditor使用心得
  10. (转) mysql的分区技术 .