列表推导式

Python里的推导式

刷题的时候,有些题目需要生成一个带条件的列表,当然可以先创建一个空列表,然后一行一行去写条件然后判断,最后append到空列表里,
其实还有一种看似高大上的简洁写法,就是列表推导式和列表表达式写法.

  • 格式
    [表达式 for 变量 in 列表]
    [表达式 for 变量 in 列表 if 条件]

列表推导式

  • 请写一段代码生成 1到100之间的正整数的一个列表
#普通写法:
num=[]
for i in range(1,101):
    num.append(i)
print(num)

#推导式写法
num=[i for i in range(1,101)]
print(num)

带条件的推导式

  • 请写一段代码生成1到100之间的偶数的一个列表
#普通写法:
num=[]
for i in range(1,101):
    if i % 2 == 0:
        num.append(i)
print(num)

#推导式写法
num=[i for i in range(1,101) if i % 2 == 0]

带条件的表达式

  • 请写一段代码生成一个列表包含,在1到100之间的数,如果是3的倍数,就求平方,如果不是3的倍数,就数字本身
# 普通写法
num=[]
for i in range(1,101):
    if i % 3 == 0:
        num.append(i**2)
    else:
        num.append(i)
print(num)

# 表达式写法
num=[i**2 if i % 3 == 0 else i for i in range(1,101)]

其实不同的写法最终的效果都是一样的,也不见得写成一行就有多好,代码运行时间其实都差不多,无非就是看起来一个条理清楚易于阅读,一个看起来比较简洁适合装x

posted @ 2022-05-24 12:06  大立出奇迹  阅读(72)  评论(0编辑  收藏  举报