robinworkhard

今天主要是做些练习题巩固知识,以后将python学习时间安排为6:2:2。6成时间用于敲代码,2成时间看视频学习新知识,2成时间看书巩固知识。

# 1、文件内容如下,标题为:姓名,性别,年纪,薪资
# egon male 18 3000
# alex male 38 30000
# wupeiqi female 28 20000
# yuanhao female 28 10000
# 要求:
# (1)从文件中取出每一条记录放入列表中,
# (2)列表的每个元素都是{\'name\':\'egon\',\'sex\':\'male\',\'age\':18,\'salary\':3000}的形式
# 方法1,使用zip方法将两个列表结合成字典
# list2 = []
filepath =\'C:/Users/Administrator/Desktop/t1.txt\'
# with open(filepath,mode=\'r\',encoding=\'utf-8\') as f:
# list =[line.strip().split(\' \') for line in f]
# for i in list[1:]:
# value = [value for value in i]
# keys = [\'name\', \'sex\', \'age\', \'salary\']
# dict = {k:v for k,v in zip(keys,value)}
# list2.append(dict)
# print(list2)
#方法2
lst3 = []
with open(filepath,mode=\'r\',encoding=\'utf-8\') as f:
lst =[line.strip().split(\' \') for line in f]
for i in lst[1:]:
lst = {\'name\':i[0],\'male\':i[1],\'age\':i[2],\'salary\':i[3]}
lst3.append(lst)
print(lst3)


# 2 根据1得到的列表,取出薪资最高的人的信息
ret = max(lst3,key=lambda dic:dic.get(\'salary\'))
print(ret)

# 3 根据1得到的列表,取出最年轻的人的信息
ret1 = min(lst3,key = lambda dic:dic.get(\'age\'))
print(ret1)

# 4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
lst3_new = map(lambda item:{\'name\':item[\'name\'].capitalize(),
\'male\':item[\'male\'],
\'age\':item[\'age\'],
\'salary\':item[\'salary\']},lst3)
print(list(lst3_new))

# 5 根据1得到的列表,过滤掉名字以a开头的人的信息
lst4 = filter(lambda item:item[\'name\'].startswith(\'a\'),lst3)
print(list(lst4))

# 6 使用递归打印斐波那契数列(前两个数的和得到第三个数,如:0 1 1 2 3 4 7...)
#1 非递归方法
def fib(n):
a,b =0,1
while a<n:
print(a,end=\' \')
a,b =b,a+b
fib(10)
#2 递归方法
def fib1(a,b,stop):
if a>stop:
return
else:
print(a,end=\' \')
fib1(b,a+b,stop)
fib1(1,2,10)

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

def get(seq):
for item in seq:
if type(item) is list:
get(item)
else:
print(item)
get(l1)

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2017-12-07
  • 2021-07-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-01-09
  • 2022-01-12
  • 2021-05-16
  • 2021-08-24
  • 2021-10-02
  • 2022-02-25
  • 2021-10-27
相关资源
相似解决方案