• python—列表生成式


    1 #原始写法
    2 l=[]
    3 for i in range(1,11):
    4     l.append(str(i).zfill(2))
    5 print(l)

    #结果:['01', '02', '03', '04', '05', '06', '07', '08', '09', '10']
    
    

    列表生成式,只能用在列表中

    先写循环,再把循环里的i拿出来,可以做一些简单的操作(补零、转换为字符串等)

    1 # 列表生成式
    2 l2=[str(i).zfill(2) for i in range(1,11)]
    3 print(l2)
    4 
    5 #结果:['01', '02', '03', '04', '05', '06', '07', '08', '09', '10']

       小练习:(创建一个文件)

    1 import os
    2 # 创建文件
    3 res=[open('%s.txt'%i,'w')for i in range(10)]
    4 # 创建文件夹
    5 # res=[os.mkdir(str(i))for i in range(10)]

       小练习:(列表生成式,加判断)

    1 # 加判断写法(列表生成式只可以加判断)
    2 res=[os.mkdir(str(i))for i in range(10) if i%2!=0]   #遇到偶数创建
    3 res=[os.mkdir(str(i))for i in range(10) if i>0]   #if可以加可以不加

      小练习:(生成100以内的奇数)

    1 l = [i for i in range(1,51,2)]#外面是[]就是一个list
    2 print(l)
    #结果:[1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49]

    生成器

     1 #列表生成式
     2 l = [i for i in range(1,11,2)]#外面是[]就是一个list
     3 print(l)
     4 #结果:[1, 3, 5, 7, 9]
     5 #以空间换时间,内存占用大,但是不用再计算省cpu
     6 #list它是把所有的元素都放在内存里面的,这里就会申请5块内存空间

    7 #生成器() 8 l=(i for i in range(1,11,2))#外面是()的话,就是生成器 9 print(l) 10 # 结果:<generator object <genexpr> at 0x000000000266A4C0> 11 12 for i in l: 13 print(i) 14 # 结果: 15 # 1 16 # 3 17 # 5 18 # 7 19 # 9 20 #generator生成器比list要节省内存,它是每次循环的时候,会根据规则计算一个元素,放到内存里面 21 #generator性能比list好一些,只申请一块内存空间,每次调用再去根据规则算

    三元表达式

     1 #初级写法
     2 sex=0
     3 if sex==0:
     4     sex=''
     5 else:
     6     sex=''
     7 print(sex)
     8 
     9 # 三元表达式
    10 # 高级写法
    11 sex=0
    12 sex= '' if sex==0 else ''   #(满足条件取前面的 值,条件不满足取后面的 值)
    13 print(sex)

       小练习二

    1 a = 5
    2 b = 6
    3 # if a > b:
    4 #     c = a
    5 # else:
    6 #     c = b
    7 c = a if a > b else b #如果a大于b的话,a = c,否则 c =b
    8 print(c)
  • 相关阅读:
    noip模拟赛 钻石
    noip模拟赛 整除
    noip模拟赛 拼不出的数
    noip模拟赛 正方形
    noip模拟赛 财富
    noip模拟赛 a
    Java基础知识强化23:Java中数据类型转换(面试题)
    Java基础知识强化22:Java中数据类型转换
    Java基础知识强化21:Java中length、length()、size()区别
    MySQL(12):windows下解决mysql忘记密码
  • 原文地址:https://www.cnblogs.com/cwl-bj/p/10782810.html
Copyright © 2020-2023  润新知