import math a = [p for p in range(2, 100) if 0 not in [p % d for d in range(2, int(math.sqrt(p)) + 1)]] print(a) #输出结果 #[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
推导式是个绝妙的东西,列表推导式一出,map.filter等函数黯然失色,自 Python2.7以后的版本,此特性扩展到了字典和集合身上,构建字典对象无需调用 dict 方法. bad numbers = [1,2,3] d = dict([(number,number*2) for number in numbers]) good numbers = [1, 2, 3] d = {number: number * 2 for number in numbers}
在python开发中经常需要书写这样的代码 result = list() for data in datas: if data not in ['a', 'b']: result.append(data) 这时候我们就可以使用列表推导来替代以上的代码,列表推导简洁明了而且代码量少,运行速度也快 result = [data if data not in ['a', 'b'] for data in datas] 列表推导内部可以使用循环和判断语句,最好只有简单的循环和判断语句,否则代码可读性很
之前自己也遇到过一次,这段时间在群里也遇到过几次的一个问题 用python2.7写的一段程序.里面用到了字典推导式,可是server版本号是python2.6,无法执行. 今天查了下关于Dict Comprehensions,在pep274中有明白的说明. http://legacy.python.org/dev/peps/pep-0274/ Implementation All implementation details were resolved in the Python 2.7 and
推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起来,中间用for语句,后面跟if语句用作判读,满足条件的传到for语句前面用作构建先的列表 [x**2 for item in item_list if item>2] 例子: >>> li=[i*2 for i in range(10) if i % 2 == 0] >>
推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起来,中间用for语句,后面跟if语句用作判读,满足条件的传到for语句前面用作构建先的列表[x**2 for item in item_list if item>2] 例子: 1 >>> li=[i*2 for i in range(10) if i % 2 == 0] 2 >&
1.列表推导式multiples = [i for i in range(30) if i % 2 is 0]names = [[],[]]multiples = [name for lst in names for name in lst if name.count('e') >= 2] 2.字典推导式mcase = {'a': 10, 'b': 34}mcase_frequency = {mcase[k]: k for k in mcase} 3.集合推导式squared = {x**2 f
参考:https://blog.csdn.net/A_Tu_daddy/article/details/105051821 my_list = [ [[1, 2, 3], [4, 5, 6]] ] flat = [x for sub1 in my_list for sub2 in sub1 for x in sub2] print(flat) # [1, 2, 3, 4, 5, 6] flat2 = [((x for x in sub2) for sub2 in sub1) for sub1 i
字典推导: x = ['A', 'B', 'C', 'D'] y = ['Alice', 'Bob', 'Cecil', 'David'] print({i:j for i,j in zip(x,y)}) >>>{'A': 'Alice', 'B': 'Bob', 'C': 'Cecil', 'D': 'David'} 列表推导: m=[x*x for x in range(0,10)] print(m) >>> [0,1,4,9,16,25,36,49,64,81]