python之路--day13---函数--三元表达式,递归,匿名函数,内置函数-----练习

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开头的人的信息
6 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)

7 一个嵌套很多层的列表,如l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]],用递归取出所有的值

 1 data = []
 2 with open(‘ceshi.txt‘,‘r‘,encoding=‘utf-8‘) as f:
 3     for line in f:
 4         i= line.strip(‘\n‘).split(‘ ‘)
 5         dic = {
 6             ‘name‘:i[0],
 7             ‘sex‘:i[1],
 8             ‘age‘:int(i[2]),
 9             ‘salary‘:int(i[3])
10         }
11         data.append(dic)
12
13 # [{‘name‘: ‘egon‘, ‘sex‘: ‘male‘, ‘age‘: 18, ‘salary‘: 3000}, \
14 #  {‘name‘: ‘alex‘, ‘sex‘: ‘male‘, ‘age‘: 38, ‘salary‘: 30000}, \
15 #  {‘name‘: ‘wupeiqi‘, ‘sex‘: ‘female‘, ‘age‘: 28, ‘salary‘: 20000},\
16 #  {‘name‘: ‘yuanhao‘, ‘sex‘: ‘female‘, ‘age‘: 28, ‘salary‘: 10000}]
17
18 res=max(data,key=lambda x: x[‘salary‘])
19 res1=min(data,key=lambda x: x[‘age‘])
20
21 res2=map(lambda x: {‘name‘:x[‘name‘].capitalize(),
22             ‘sex‘: x[‘sex‘],
23             ‘age‘: x[‘age‘],
24             ‘salary‘: x[‘salary‘]},
25                 data)
26
27
28 res3 = filter(lambda x:not x[‘name‘].startswith(‘a‘),data)
29
30
31 #非递归
32 def fib(n):
33     a,b=0,1
34     while a < n:
35         print(a,end=‘ ‘)
36         a,b=b,a+b
37     print()
38
39 fib(10)
40 #递归
41 def fib(a,b,stop):
42     if  a > stop:
43         return
44     print(a,end=‘ ‘)
45     fib(b,a+b,stop)
46
47 fib(0,1,10)
l=[1,2,[3,[4,5,6,[7,8,[9,10,[11,12,13,[14,15]]]]]]]

def list1(x):
    for item in x:
        if  not type(item) == list:
            print(item)
        else:
           list1(item)

原文地址:https://www.cnblogs.com/guodengjian/p/8698503.html

时间: 2024-10-17 01:32:57

python之路--day13---函数--三元表达式,递归,匿名函数,内置函数-----练习的相关文章

函数嵌套 ,名称空间与作用域 ,闭包函数 ,装饰器 ,迭代器, 生成器 三元表达式,列表解析,生成器表达式 递归与二分法, 内置函数

函数嵌套名称空间与作用域闭包函数装饰器迭代器生成器三元表达式,列表解析,生成器表达式递归与二分法内置函数--------------------------------------------函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数函数的嵌套定义:在一个函数的内部,又定义另外一个函数def max(x,y): if x>y: return x else: return ydef max1(a,b,c,d): res=max(a,b) res2=max(res,c) res3=ma

shell函数【参数传递及输入输出】&amp;内置函数

Linux--shell脚本基础3:shell函数[参数传递及输入输出]&内置函数 函数定义 1 退出状态 1 参数传递 2 标准IO 2 脚本调试 2 AND&OR 3 内置命令补充 3 函数定义 函数定义: 在Shell 中,函数就是一组命令集或语句形成一个可用块 函数增强了shell的可编程能力 组成 function_name(){ statements } 函数名(在一个脚本中必须唯一) 函数体(命令集合) 注意 shell中不存在向前声明(先定义后使用) 必须在调用一个函数之前

Python成长之路第二篇(1)_数据类型内置函数用法

数据类型内置函数用法int 关于内置方法是非常的多这里呢做了一下总结 (1)__abs__(...)返回x的绝对值 #返回x的绝对值!!!都是双下划线 x.__abs__() <==> abs(x) 例如: #!/usr/bin/python print "abs(-45) : ", abs(-45) print "abs(100.12) : ", abs(100.12) print "abs(119L) : ", abs(119L)

Python学习笔记(四,迭代器、生成器、内置函数)

一.迭代器 1.迭代器定义 迭代是一个重复的过程,每次重复一次迭代,并且每次迭代的结果都是下一次迭代的初始值. l = ["aaa","bbb","ccc"] count = 0 while count< len(l): #每次重复完成后count都是下一次的初始值 print(l[count]) count+=1 需要迭代器的原因:对于序列类型str.list.tuple可以依赖索引迭代取值,对于dict.set.文件需要提供不依赖索引取

python基础12_匿名_内置函数

一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, 66] def binary_search(dataset, find_num): print(dataset) if len(dataset) > 1: mid = int(len(dataset) / 2) if dataset[mid] == find_num: # find it print

python函数知识五 推导式和内置函数一(了解)

17.推导式: 推导式:将for循环多行变成一行 list推导式:[] #普通模式 print([i for i in range(20)]) #循环模式 #[变量 for i in range(20)] print([i+1 for i in range(10)]) #筛选模式 #[变量(加工后) for i in range(20)] print([i for i in range(20) if i % 2 == 1]) 生成器表达器:() #普通模式 print((i for i in r

Python之路(第二十六篇) 面向对象进阶:内置方法

一.__getattribute__ object.__getattribute__(self, name) 无条件被调用,通过实例访问属性.如果class中定义了__getattr__(),则__getattr__()不会被调用(除非显示调用或引发AttributeError异常) class Foo: ? def __init__(self,x): self.x = x ? def __getattr__(self, item): print("执行__getattr__") ?

python类和函数拾遗——继承、bif(内置函数)、魔法方法

函数在创建时有一些内置的方法,特殊情况下会使用到.一般被称为魔法方法 在此之前先记录一下类的进阶方法: class Fish(): def hello(self): print("Hello! I am a fish!") class Shark(Fish): def eat(self): print("鲨鱼吃各种鱼") 这样子的话如果shark1 = Shark()     我们调用shark1.hello() 会怎样呢? shark1 = Shark() sha

python:类2——有关类和对象的BIF内置函数

1.检查.判断 issubclass(class, classinfo)如果第一个参数是第二个参数的子类,返回true,注意: 非严格(自己可以认为是自己的子类): 第二个参数可以是由多个class组成的tuple,有任何一个合适,就true: 其他情况对抛出typeerror isinstance(object, classinfo)检查某第一个参数实例对象是否属于一个类 第二个参数可以是由多个class组成的tuple,有任何一个合适,就true: 如果第一个参数传入不是对象类型,永远返回f