列表生成式
注释的部分6行代码,列表生产式的写法只需要1行,简洁明了,服~
语法和思维需要稍微的转变,需要生成的元素放在最前面,后面跟for循环;for循环后还可以加条件判断作为过滤条件
def prime_num(num):
# num_p=2
# prime_list=[]
# while num_p<num:
# if is_prime(num_p):
# prime_list.append(num_p)
# num_p+=1
# 下面是列表生成式的写法
prime_list = [i for i in range(2,num) if is_prime(i)]
print(prime_list)
print("_______________")
return prime_list
还可以使用两层循环,例如生成全排列
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']