day14(内置函数)
print(list(map(func, lambda x : x))
print(list(filter lambda x : x > len(x)))
print(zip(l1,l2,tu)[2:])
print(fileter lambda x,y : len(x)> 3 and y>2 )
13.有两个字符串列表,a和b,每个字符是由逗号分隔的一些字符,(升级题)尽量做得支持扩展
a = [
'a,1',
'b,3,22',
'c,3,4'
'f,5'
]
b=[
'a,2',
'b,4',
'd,2'
'e,12'
]
按每个字符串的第一个值,合并a和b到c
c = [
'a,1,2',
'b,3,22,4',
'c,3,4',
'd,2',
'e,12',
'f,5'
]
# 老师的方法,老师善用字典,添加增加 get 方法 遍历 推导式的对应很厉害
# 老师的方法,老师善用字典,添加增加 get 方法 遍历 推导式
dic = { i[0]:i for i in d}#{'a': 'a,1', 'b': 'b,3,22', 'c': 'c,3,4', 'f': 'f,5'}
l = []
for em in b: #遍历好
if dic.get(em[0]): # 如果在里面 则是真
# em += dic[em[0]][1:]
# l.append(em) # 我的垃圾思想
dic[em[0]]+=em[1:]# 添加值 切片一下
else:
# l.append(dic)
# l.append(em)
dic[em[0]] = em #不在里面 添加键值对
# l.append(dic) #这里蒙住了
print(dic.values())#dict_values(['a,1,2', 'b,3,22,4', 'c,3,4', 'f,5', 'd,2', 'e,12'])
print(list(dic.values()))#['a,1,2', 'b,3,22,4', 'c,3,4', 'f,5', 'd,2', 'e,12']
#我做的,每次都弄成 reduce 不会用 乱用 做出来了才是 好方法
from functools import reduce
# i = 0
lis = []
# def func(x,y): # x=12345 for i in range(len(x)):
if x[i][0] == y[i][0]:
# print(x[i][0])
lis.append(x[i]+y[i][1:])
else:
lis.append(x[i])
lis.append(y[i])
# return x[i][i],y[i][i] # reduce 是做累计算的
# print(reduce(func,(a,b)))
# func(a,b)
print(lis)
'''
12. 求结果
v = (lambda :x for x in range(10))
print(v)
print(v[0])
print(v[0]())
print(next(v))
print(next(v)())'''
print(v)#<generator object <genexpr> at 0x000000000289E938>
# print(v[0])#TypeError: 'generator' object is not subscriptable
# print(v[0]())#TypeError: 'generator' object is not subscriptable
print(next(v)()) #
a = v.__next__()
print(v.__iter__().__next__())#<function <genexpr>.<lambda> at 0x00000000028AA268>
print(v.__next__)#<method-wrapper '__next__' of generator object at 0x000000000286E938> # 就这个每迭代 前面有括号的都调用了
print(next(v))#<function <genexpr>.<lambda> at 0x000000000288A2F0>
print(next(v)())#
print(next(v)())#
print(next(v)())#
# 和迭代器似的,
# 11. 求结果
# v = [lambda :x for x in range(10)]
# print(v)
# print(v[0])
# print(v[0]())
自己写
la = []
def func(i): #我自己听了老师自己写的 ,写的函数地址一样 结果对的
for i in range(10):
print(end='')
print(func)
la.append(func) #<function func at 0x0000000000441E18>
#<function func at 0x0000000000441E18>
return func
func(0)
print(la)
老师举例
li = []
for x in range(10):# 老师说的太棒了
def func():
return x
li.append(func)
print(li)
v = [lambda :x for x in range(10)]
print('\n',v,'\n',li) # 两个 分别是lambda 和函数的 10个地址
print(v[0],li[0])#<function <listcomp>.<lambda> at 0x000000000290F0D0> <function func at 0x00000000028FAA60>
print(v[0](),li[0]())#9 9
# 10.有如下数据类型:
# 将l1按照列表中的每个字典的values大小进行排序,形成一个新的列表。
l1 = [{'sales_volumn': 0},
{'sales_volumn': 108},
{'sales_volumn': 337},
{'sales_volumn': 475},
{'sales_volumn': 396},
{'sales_volumn': 172},
{'sales_volumn': 9},
{'sales_volumn': 58},
{'sales_volumn': 272},
{'sales_volumn': 456},
{'sales_volumn': 440},
{'sales_volumn': 239}]
print(list(sorted(l1,key=lambda x :x['sales_volumn'])))
# 这个题 的 key 使用 lambda 传的, 还有 sorted 还得用列表包一下啊
# 9.有下列三种数据类型,
# l1 = [1,2,3,4,5,6]
# l2 = ['oldboy','alex','wusir','太白','日天']
# tu = ('**','***','****','*******')
# 写代码,最终得到的是(每个元祖第一个元素>2,第三个*至少是4个。)
# [(3, 'wusir', '****'), (4, '太白', '*******')]这样的数据。
#前后写了许久,因为zip不明白意思,是拉链,是多个拉起来,一个的话默认不拉 还有判断的那个 第一个元素用索引x[0]and 第三个 用索引x[-1] 都是基础 但是不会
#老师的方法
print(list(filter(lambda x:x[0]>2 and len(x[-1])>3 ,list(zip(l1,l2,tu)))))
出错过程
# l = list(zip(l1,l2,tu))
# print(list(zip(l)))
# l = (l1,l2,tu) # 这样包是元组
# print(list(zip(l)))
# l1 = list(zip(l1,l2,tu)) #这样包是括号 拉链 一个对应一个的咬合
# print(l1)
# print(list(filter(lambda x: ,list(zip(l))))) #耻辱
print(list(filter(lambda x:x[0]>2 and len(x[-1])>3 ,list(zip(l1,l2,tu)))))
#前后写了许久,因为zip不明白意思,是拉链,是多个拉起来,一个的话默认不拉 还有判断的那个 第一个元素用索引x[0]and 第三个 用索引x[-1] 都是基础 但是不会
自己的做法
l1 = [1, 2, 3, 4, 5, 6]
l2 = ['oldboy', 'alex', 'wusir', '太白', '日天']
tu = ('**', '***', '****', '*******')
# print( list(filter(lambda x,y,z:(x>2,len(x)>=4,len(x)>=4),(l1,tu,l2))))
b = list(filter(lambda x:len(x)>=4,tu))
c = list(filter(lambda x:len(x)>=4,l2))
a = list(filter(lambda x:x>2,l1))
print(list(zip(a,b,c)))
# 7.有下面字典,得到购买每只股票的总价格,并放在一个迭代器中。
# 结果:list一下[9110.0, 27161.0,......]
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}]
自己做法
from functools import reduce
# l = []
# def func(x,y):
# for i in portfolio:
# l.append((i['shares']*i['price']))
# l.append(x*y)
# print(list(reduce(func,(portfolio['shares']))))
ll = []
for i in portfolio:
ll.append(i['price']*i['shares'])
print(ll)
#强行用函数
老师做法
# print(([i['shares']*i['price']for i in portfolio]))
8.还是上面的字典,用filter过滤出单价大于100的股票。(怎么凑出来的?)
print(list(filter(lambda x:x['price']>100,portfolio)))
'''
6.用filter来处理,得到股票价格大于20的股票名字
shares={'IBM':36.6,
'Lenovo':23.2,
'oldboy':21.2,
'ocean':10.2,}
'''
print(list(filter(lambda x:shares[x]>20,shares)))
5.用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
l=[{'name':'alex'},{'name':'y'}]
print(list(map((lambda x:x['name']+'_sb'),l)))
# 4.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sb
# name=[‘oldboy’,'alex','wusir']
print(list(map((lambda x:x+'_sb'),name)))
day14(内置函数)的更多相关文章
- day14内置函数作业详解
day14题目 day14作业及默写 1,整理今天所学内容,整理知识点,整理博客. 2,画好流程图. 3,都完成的做一下作业(下面题都是用内置函数或者和匿名函数结合做出): 4,用map来处理字符串列 ...
- python基础学习Day14 内置函数 匿名函数
一.内置函数里几个高频重要函数 (1)min\max函数的用法 以min函数的为例: min:返回可迭代对象的最小值(可加key,key为函数名,通过函数的规则,返回最小值). l1 =[(,),(, ...
- day14 内置函数二
lamda 语法: 函数名 = lambda 参数: 返回值注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开 2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据 3. 返回 ...
- Python——day14 三目运算、推导式、递归、匿名、内置函数
一.三目(元)运算符 定义:就是 if...else...语法糖前提:简化if...else...结构,且两个分支有且只有一条语句注:三元运算符的结果不一定要与条件直接性关系 cmd = input ...
- day14(1)--递归、匿名函数、内置函数
一.递归 定义:本质上是回溯和递推 回溯:询问答案的过程 递推:推出答案的过程 前提: 回溯到一个有结果的值开始递推 回溯与递推的条件要有规律 方式: 直接递归:自己调用自己 间接递归:通过别人来调用 ...
- day14 十四、三元运算符,推导式,匿名内置函数
一.三元(目)运算符 1.就是if...else...语法糖 前提:if和else只有一条语句 # 原来的做法 cmd = input('cmd:>>>') if cmd.isdig ...
- python 全栈开发,Day14(列表推导式,生成器表达式,内置函数)
一.列表生成式 生成1-100的列表 li = [] for i in range(1,101): li.append(i) print(li) 执行输出: [1,2,3...] 生成python1期 ...
- 【学习笔记】--- 老男孩学Python,day14 python内置函数大全
参考: https://www.cnblogs.com/pyyu/p/6702896.html http://www.runoob.com/python3/python3-built-in-func ...
- Python基础—内置函数(Day14)
一.内置函数 1.***eval:执行字符串类型的代码,并返回最终结果(去掉括号里面是什么就返回什么). print(eval('3+4')) #7 ret = eval('{"name&q ...
随机推荐
- 微信小程序开发——使用回调函数出现异常:TypeError: Cannot read property 'setData' of undefined
关键技术点: 作用域问题——回调函数中的作用域已经脱离了调用函数了,因此需要在回调函数外边把this赋给一个新的变量才可以了. 业务需求: 微信小程序开发,业务逻辑需要,需要把获取手机号码的业务逻辑作 ...
- vue的双向数据绑定实现原理
在目前的前端面试中,vue的双向数据绑定已经成为了一个非常容易考到的点,即使不能当场写出来,至少也要能说出原理.本篇文章中我将会仿照vue写一个双向数据绑定的实例,名字就叫myVue吧.结合注释,希望 ...
- c#调用dll接口传递utf-8字串方法
1. 起源: VCU10之视频下载模块,采用纯python编码实现,c++代码调用pythonrun.h配置python运行环境启动python模块,编译为dll给c#调用,以使界面UI能够使用其中功 ...
- swift -2018 - 创建PCH文件
第一种:简单方式 在swift文件 创建一个OC文件 1> command + n 2> 3> 此时 你会发现有提示 让你创建桥接文件 4>删除 OC文件 5> 直接复制 ...
- MyBatis代理开发(2)
一.开发步骤和程序代码 1.程序员需要编写user.xml映射文件,程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象. 2.创建数据库配置文件 ...
- Spring mvc项目导出jar包无法识别正常映射问题
笔者的代码很简单,平常的配置文件,web.xml如下 <servlet> <!--名称 --> <servlet-name>springmvc</servle ...
- Sonar配置与使用
一.前置条件: 安装工具如下: JDK MySql服务器 SonarQube SonarScanner 从官网下载安装包进行安装,具体安装步骤略 二.配置 MySql配置: 打开SQL,创建sonar ...
- 让键盘输入不影响界面的动态效果(C++)
输入语句,当代码运行到它的时候就要等待输入,才能执行下一行代码,如果不输入的话,就相当于在这里暂停了(程序设计老师讲过通过这样的方式以达到暂停(pause)的效果),但如果我们想要如果没输入仍然可以运 ...
- iOS.Animation.CAMediaTiming
CAMediaTiming Protocol CALayre 和 CAAnimation 实现了CAMediaTiming 接口. CAMediaTiming 定义了8个属性. speed属性: Co ...
- [转载]RPM中SPEC常用路径以及宏变量
转自:http://blog.csdn.net/txgc1009/article/details/6833764 通过命令rpm --showrc查看实现代码.另外直接通过 rpm --eval &q ...