标签:value 结果 生成器 字典 tor 集合推导式 object 集合 for
1、生成器表达式 (i for i in range(10)) 返回一个生成器 exp1: g = (i for i in range(10)) print(g) 执行结果: <generator object <genexpr> at 0x00000000020A4F48> for i in g: print(i) 生成器表达式和列表推导式区别: 1.括号不一样,生成器表达式为括号(),列表推导式为中括号[] 2.返回的值不一样,生成器表达式返回 一个生成器 生成器节省内存 列表表达式 返回列表所有结果, 老母鸡 = (‘鸡蛋%s‘%i for i in range(10) ) print(老母鸡) for 鸡蛋 in 老母鸡: print(鸡蛋) 10以内的数字的平方 square = ( i**2 for i in range(10)) for num in square: print(num) 2、列表推导式 [i for i in range(10)] [每一个元素或者是和元素相关的操作 for i in 可迭代数据] [ 满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] 筛选元素 egg_list = [] for i in range(10): egg_list.append(‘鸡蛋%s‘%i) print(egg_list) 执行结果: [‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘] 列表推导式 egg_list = [ ‘鸡蛋%s‘%i for i in range(10) ] print(egg_list) 执行结果: [‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘] 列表推导式:[ i for i in range(10) ] exp:找到嵌套列表中名字含有两个‘e’的所有名字 names = [[‘Tom‘, ‘Billy‘, ‘Jefferson‘, ‘Andrew‘, ‘Wesley‘, ‘Steven‘, ‘Joe‘], [‘Alice‘, ‘Jill‘, ‘Ana‘, ‘Wendy‘, ‘Jennifer‘, ‘Sherry‘, ‘Eva‘]] print([name for name_lst in names for name in name_lst if name.count(‘e‘) == 2]) 执行结果: [‘Jefferson‘, ‘Wesley‘, ‘Steven‘, ‘Jennifer‘] exp: 30以内所有能被3整除的数 [i for i in range(1,30) if i % 3 == 0] g = ( i for i in range(1,30) if i % 3 == 0) for i in g: print(i) 3、字典推导式 例一:将一个字典的key和value对调 mcase = {‘a‘: 10, ‘b‘: 34} mcase_frequency = {mcase[k]: k for k in mcase} print(mcase_frequency) {10: ‘a‘, 34: ‘b‘} exp2:合并大小写对应的value值,将k统一成小写 mcase = {‘a‘: 10, ‘b‘: 34, ‘A‘: 7, ‘Z‘: 3} mcase_frequency = {k.lower(): mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0) for k in mcase.keys()} print(mcase_frequency) {‘a‘: 17, ‘b‘: 34, ‘z‘: 3} 4、集合推导式 squared = {x**2 for x in [1, -1, 2]} print(squared) {1, 4}
标签:value 结果 生成器 字典 tor 集合推导式 object 集合 for
原文地址:https://www.cnblogs.com/Felix-DoubleKing/p/9809871.html