列表推导式与匿名函数

"""
Author:Cairo
"""
# 列表推到式:一种采用简洁的方式来处理序列中的全部或部分元素,并返回结果列表
# 推导式的公式为:[元素(或者计算方法) for循环(允许多个循环)if语句]

# 比如我们来创建一个1-100的平方
# print([x ** x for x in range(1,100)])

# 当然我们也可以设置一下条件,满足条件才能添加到列表中
# print([x ** x for x in range(10) if (x % 2)!=0])
#相同于
# for x in range(10):
#     if x%2!=0:
#         x = x**x
#         print(x)
# 还需要添加进列表哦

# 这样我们就可以看得出谁更是简洁了



# lambda表达式
# 定义:一个匿名内联匿名函数,由一个表达式组成,在函数被调用时求值
# 创建lambda函数的语法:lambda[参数]:表达式
# lambda表达式可用于函数的参数。

# 例如,我们从一个整数列表中筛选所有的偶数,可以使用filter函数。
# 这个函数的参数是function和iterable,也就是1个函数和1个可迭代对象。
# 示例代码:
#     用函数来检验有点复杂
# def isven(n):
#     if n % 2 ==0:
#         return True
#     else:
#         return False


# number = [1, 2, 3, 4, 5, 6]  # 整数列表
#
# lst = list(filter(lambda x: x % 2 == 0, number)) # 通过lambda表达式对每个number的元素进行验证,并将所有验证结果转换为list。
# print(lst) # 显示输出结果为:[2, 4, 6]


# 函数(filter)的参数,并通过这个函数对其它参数进行处理。
# filter函数会把number的每一个元素作为函数iseven的参数传入,进行计算,并将返回结


# 从姓名集合中筛选出姓氏为“李”的姓名。
name_set = {'邢佳栋', '李学庆', '高昊', '潘粤明', '戴军', '薛之谦', '贾宏声', '于波', '李连杰', '王斑', '蓝雨', '刘恩佑','任泉', '李光洁', '姜文', '黑龙', '张殿菲', '邓超', '张杰', '杨坤', '沙溢', '李茂', '黄磊', '于小伟', '刘冠翔','秦俊杰', '张琳', '陈坤', '黄觉', '邵峰', '陈旭', '马天宇', '杨子', '邓安奇', '赵鸿飞', '马可', '黄海波','黄志忠', '李晨', '后弦', '王挺', '何炅', '朱亚文', '胡军', '许亚军', '张涵予', '贾乃亮', '陆虎', '印小天','于和伟', '田亮', '夏雨', '李亚鹏', '胡兵', '王睿', '保剑锋', '于震', '苏醒', '胡夏', '张丰毅', '刘翔','李玉刚', '林依轮', '袁弘', '朱雨辰', '丁志诚', '黄征', '张子健', '许嵩'}
lst = tuple (filter(lambda x: x[:1] == '' , name_set))
print(lst)

lst1 = [x for x in name_set if '' in x[0]]  # 使用列表推导式获取新的列表。

# 匿名函数可以将验证的结果转为列表和元组、集合
# 匿名函数的结构为:转换的类型(filter参数(lambda 需要验证的参数(可随便取名): 需要验证的参数(是前面的元素) == “判断”,检验的容器))

猜你喜欢

转载自www.cnblogs.com/ArtisticMonk/p/9060744.html
今日推荐