Lesson 83 python中的列表生成式
文章目录
1. 什么是列表生成式
列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式
列表生成式也可以叫做列表解析
列表生成式的格式:[expression for i in 序列 if…]==表达式+循环+条件
一般情况下循环太繁琐,而列表生成式则可以用一行语句代替多行循环生成列表
运用列表生成式,可以写出非常简洁的代码
运用列表生成式,可以快速生成list,可以通过一个list推导出另一个list,而代码却十分简洁
2. 用列表的append方法生成列表
使用for循环的方法:
s = '51 5000 10000'
li = []
for item in s.split():
li.append(int(item))
k,a,b = li
k,a,b = [int(item) for item in s.split()]
print(k,a,b)
生成一个列表,列表元素分别为[12,22,32…n2]
li = []
# for i in range(1,10):
# li.append(i ** 2) #打印1~9的平方
# print(li)
# print([i ** 2 for i in range(1,10)])
2. 用列表生成式生成一个列表
[expression for i in 序列 if...]
#带条件的列表生成式
列表元素为1~10中偶数的平方
print([i ** 2 for i in range(1,10) if i % 2 == 0])
3. 列表生成式练习1:用列表生成式生成一个列表,包含1到num的所有质数
def isPrime(num):
for i in range(2,num):
if num % i == 0:
return False
else:
return True
print([i for i in range(2,101) if isPrime(i)])
4. 列表生成式练习2:用列表生成式生成一个列表,包含1到num的所有质数
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整
数,并输出结果。输
入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别
为(5,5),(3,7))
[2,3,5,7]
-
输入描述:
输入包括一个整数n,(3 ≤ n < 1000) -
输出描述:
输出对数 -
示例1 :
输入:
10
输出:
2
"""
num = int(input()) #传入num
def isPrime(num): #定义判断质数的函数
for i in range(2,num):
if num % i == 0:
return False
else:
return True
primeli = [i for i in range(2,num) if isPrime(i)] #拿到2到num的所有质数
print(primeli)
"""
1.先拿出两个数
2.判断两个数之和是否等于num
"""
count = 0 #定义两质数之和为num的计数器为0
for item1 in primeli:
if (num - item1) in primeli and item1 <= num - item1: #这里要去掉重复的
count += 1 #发现符合要求,计数器加1
print(count)