Python06-生成式/两个牛逼的内置函数

生成式:用来简化for循环,选出/生成符合特定条件的列表、集合与字典,通常包含条件逻辑(if-else语句)

列表生成式:
list1 = ["A","B","C"]
list2 = ["a","b","c"]
[m+n for m in list1 for n in list2]
my_data=[[1,2,3],[4,5,6],[7,8,9]]
rows_to_keep = [row for row in my_data if row[2]>5][4,5,6]  [7,8,9]
集合生成式:
my_data=[(1,2,3),(4,5,6),(7,8,9),(7,8,9)]
set_of_tuple1 = {x for x in my_data}
set_of_tuple2 = set(mydata)

两个结果一样,用生成式举个例子,用set就可以了

字典生成式:
my_dictionary = {'customer1':7 ,'customer2':9,'customer3':11}
my_results = {key:value for key,value in my_dictionary.items() if value > 10}
#筛选出值大于10滴

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

两个牛逼的BIF
  • filter——把非True的内容过滤掉
    filter(function or none , iterable)

eg1:前面为none,把后面数据筛选出来(True)

list([filter(None,[1,0,False,True])])
[1,True]

eg2:前面为函数,后面迭代数据相当于函数数据

def odd(x):
    return x%2
temp = range(10)
show = filter(odd,temp)
list(show)
[1,3,5,7,9]

filter把迭代数代入函数,过滤留下符合条件function的items(把item带入function,返回结果为1的item)

  • map——映射,对每个元素应用公式
list(map(lambda x:x*2, range(10)))
[0,2,4,6,8,10,12,14,16,18]

# attention:强大的map后边可以接受多个序列作为参数
list(map(lambda x,y:[x y],[1,3,5,7,9],[2,4,6,8,10]))
[[1,2],[3,4]……]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值