python-列表推导式

列表推导式:用非常简洁的方式快速生成特定需求的列表
语法 [表达式 for 变量 in 序列或迭代对象]

1、用法1

# 举例1
list = [i for i in range(5)]
print(list)  #-->[0, 1, 2, 3, 4]

2、用法2

# 举例2:使用列表推导式实现嵌套列表
nums= [[1,2,3],[4,5,6],[7,8,9]]
list2 = [num for elem in nums for num in elem] #第一个for是外循环,第二个for是内循环,内循环执行的快
print(list2) #-->[1, 2, 3, 4, 5, 6, 7, 8, 9]
# 相当于如下写法
ret = []
for elem in nums:
    for num in elem:
        ret.append(num)
print(ret)#-->[1, 2, 3, 4, 5, 6, 7, 8, 9]

3、用法三

# 举例3:过滤不符合条件的元素,参考力扣448题:消失的数字
nums = [1,6,8,9,0,4]
list = [i for i in nums if i > 5]#过滤出数组中大于5的数字
print(list)#-->[6, 8, 9]

4、用法四

# 举例4:使用多个循环实现多序列元素的任意组合
list = [(x,y) for x in [1,2,3] for y in[2,3,4] if x!=y]
print(list)#-->[(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 2), (3, 4)]

5、用法5

# 举例5:实现矩阵转置,这个有些难理解
matrix = [[1,2,3],[4,5,6],[7,8,9]]
re_matrix = [[row[i] for row in matrix] for i in range(3)]
print(re_matrix)#-->[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
# 相当于:(留给大家思考,实际上我也没想明白)

6、用法6

# 举例6:列表推导式支持文件对象迭代
fp = open("D:\test.txt",'r',encoding = 'utf-8')
print([line for line in fp])
fp.close()

例题:

# 题目:打印出100以内的素数

# 答案
import math
l = [p for p in range(2,100) if 0 not in[p%d for d in range(2,int(math.sqrt(p))+1)]]
print(l)#-->[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]

最后:

# 每日一句
print("劝君莫惜金缕衣,劝君惜取少年时")#--》我劝你不要太注重功名利禄,我劝你珍惜求学的最好时光

参考:那一定会很酷作者的博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值