前言
在Python语言中,所谓列表生成式,就是说可以生成list列表的表达式,是Python内置的一种强大的功能,有时候我们需要较复杂的函数来实现某个功能,而列表生成式可以很简单的写出来。今天我们主要来讲一下列表生成式的应用案例。
案例一
#将字符串中的内容拆开,转换成整型
#首先来看一下不使用列表生成式
s = '10,100,1000'
li = []
for item in s.split(','):
li.append(int(item))
g,s,b = li
print(g,s,b)
#使用列表生成式
s1 = '1000 100 10'
g,s,b =[int(item) for item in s1.split()]
print(g,s,b,)
案例二
生成一个列表,列表元素分别为[12,22,32…n2]
li = []
for i in range(1,(int(input('n= '))+1)):
li.append(i**2)
print(li)
使用列表生成式:
print([i**3 for i in range(1,(int(input('n= '))+1))])
运行结果:
n= 4
[1, 4, 9, 16]
n= 4
[1, 8, 27, 64]
案例三
求以十以内所有偶数为半径的圆面积
import math
li = []
for i in range(2,11,2):
squre = math.pi*i*i
li.append(squre)
print(li)
#使用列表生成式
print([math.pi*i*i for i in range(2,11,2)])
运行结果:
[12.566370614359172, 50.26548245743669, 113.09733552923255, 201.06192982974676, 314.1592653589793]
[12.566370614359172, 50.26548245743669, 113.09733552923255, 201.06192982974676, 314.1592653589793]
案例四
#找出1~num之间所有质数
def isnum(num):
for i in range(2,num):
if num%i == 0:
return False
else:
return True
print([ i for i in range(1,11) if isnum(i)])
案例五
- 题目描述:
给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整
数,并输出结果。输
入值小于1000。
如,输入为10, 程序应该输出结果为2。(共有两对质数的和为10,分别
为(5,5),(3,7))
#[2,3,5,7] - 输入描述:
输入包括一个整数n,(3 ≤ n < 1000) - 输出描述:
输出对数 - 示例1 :
输入:
10
输出:
2
“”"
运行结果:
10
2