zoukankan      html  css  js  c++  java
  • day 3 list列表生成式

    1.定义一个list列表,里面元素是0-33

    a = []
    
    i = 0
    while i<33:
        a.append(i)
        i+=1
    
    print(a)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32]

    2.range (切片)

      1)python2 版本

      range风险:python2 版本中,有时候一次性申请很大的内存,不会给你

    ####  range  返回list列表   和切片功能相同
    In [1]: range(10)
    Out[1]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    In [2]: range(10,17)
    Out[2]: [10, 11, 12, 13, 14, 15, 16]
    
    In [3]: range(10,17,2)
    Out[3]: [10, 12, 14, 16]
    In [5]: range(0,100000)
    
    ### 运行结果
    994,
     995,
     996,
     997,
     998,
     999,
     ...]
    In [5]: range(0,1000000000)
    ---------------------------------------------------------------------------
    MemoryError                               Traceback (most recent call last)
    <ipython-input-5-30124a0b9388> in <module>()
    ----> 1 range(0,1000000000)
    
    MemoryError: 
       ##range风险:python2 版本中,有时候一次性申请很大的内存,不会给你

      2)python3版本:要一个数字,给你一个,不会全部一次性给

    In [1]: range(0,10)
    Out[1]: range(0, 10)
    
    In [2]: range(10)
    Out[2]: range(0, 10)
    
    In [3]: range(0,100000000)
    Out[3]: range(0, 100000000)

    3.列表生成式

      1) a = [ i for i in range(0,18) ]

    In [6]: a = [i for i in range(0,18)]
    
    In [7]: a
    Out[7]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
    
    
    In [8]: a = [22 for i in range(0,18)]   #for只负责循环的次数17次
    
    In [9]: a
    Out[9]: [22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22]

           

       2) a =  [ i for i in range(10) if i%2==0 ]

    In [10]: a = [i for i in range(10) if i%2==0]
    
    In [11]: a
    Out[11]: [0, 2, 4, 6, 8]

      3) d = [ (i,j) for i in range(3) for j in range(2)]

    In [15]: d = [ i for i in range(3) for j in range(2)]
    
    In [16]: d
    Out[16]: [0, 0, 1, 1, 2, 2]
    
    
    In [17]: d = [ i,j for i in range(3) for j in range(2)]
      File "<ipython-input-17-0277977bdeb0>", line 1
        d = [ i,j for i in range(3) for j in range(2)]
                    ^
    SyntaxError: invalid syntax
    
    In [
    19]: d = [ (i,j) for i in range(3) for j in range(2)] In [20]: d Out[20]: [(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)] #坐标轴

           

      4)e = [(i,j,k) for i in range(3) for j in range(2) for k in range(2)]

    In [21]: e = [(i,j,k) for i in range(3) for j in range(2) for k in range(2)]
    
    In [22]: e
    Out[22]: 
    [(0, 0, 0),
     (0, 0, 1),
     (0, 1, 0),
     (0, 1, 1),
     (1, 0, 0),
     (1, 0, 1),
     (1, 1, 0),
     (1, 1, 1),
     (2, 0, 0),
     (2, 0, 1),
     (2, 1, 0),
     (2, 1, 1)]
  • 相关阅读:
    socket 网络编程
    错误与异常
    正则与计算器
    正则爬虫案例
    面向对象
    模块与包
    常用模块-----configparser & subprocess
    正则表达式&re模块
    常用模块---sys&logging&序列化模块(json&pickle)
    常用模块----time&random&hushlib&os
  • 原文地址:https://www.cnblogs.com/venicid/p/7898595.html
Copyright © 2011-2022 走看看