有时候我们使用推导式会提高我们代码的效率
第一种:列表推导式
#找出1到100里面可以被5整除的数
#列表表达式解决
y = [x*2 for x in range(1,50) if x%5 == 0]
print(y)
#for循环解决
y = []
for x in range(1,50):
if x%5 == 0: y.append(x*2)
print(y)
#稍微复杂一点的
#打印(1,1),(1,2,).........
numbers = [(row,col) for row in range(1,10) for col in range(1,10)]
print(numbers)
第二种 字典推导式
#统计字符的个数
#列表推导式解决
tongji = "sdas sdaw asdw asd a"
letter_count = { letter:tongji.count(letter) for letter in tongji}
print(letter_count)
#for循环解决
tongji = "sdas sdaw asdw asd a"
a = {}
for i in tongji:
a[i] = tongji.count(i)
print(a)
第三种 集合推导式
a = {x for x in range(1,100) if x%9 == 0}
print(a) #集合里面的元素重复的话出现,会产生覆盖的情况
第四种 生成器推导式(所谓生成器就是可以生成元组)
gxa = (x for x in range(4))
print(gxa) #这里返回的是‘一个生成器对象’,并不是一个元组
print(tuple(gxa))
print(tuple(gxa)) #这一次返回的是空值,也就是说只可以遍历一次
|