zoukankan      html  css  js  c++  java
  • python

    python的list数据

        >>>a=[1, 2, 3, 4, 5, 6, 7]
        >>>b=a
        >>>b
        [1, 2, 3, 4, 5, 6, 7]

    用这种方式将a.list的数据传递给b.list时,当b.list 的数据发生改变,会影响到a.list

        >>>a=[1, 2, 3, 4, 5, 6, 7]
        >>>b=a
        >>>b
        [1, 2, 3, 4, 5, 6, 7]
    
    
        >>>b[3] = 'c'
        >>>b
        [1, 2, 3, 'c', 5, 6, 7]
        >>>c
        [1, 2, 3, 'c', 5, 6, 7]

    因此,要想改变b.list的数据而不影响a.list,就需要使用循环的方式将数据从a.list中取出,再append进b.list中

        >>> a = [1, 2, 3, 4, 5, 6, 7]
        >>> b = []
        >>> for i in a:
                    b.append(i)
    
        >>> b
        [1, 2, 3, 4, 5, 6, 7]
    
        >>> b[3] = 'c'
        >>> b
        [1, 2, 3, 'c', 5, 6, 7]
    
        >>>a
        [1, 2, 3, 4, 5, 6, 7]

    这样虽然能够得到想要的list,从代码的书写上却不怎么友好,因此,可以使用 For[if] 的语句替代:

        >>> a = [1, 2, 3, 4, 5, 6, 7]  
        >>> b = [i for i in a] #省略if
        >>> b
        [1, 2, 3, 4, 5, 6, 7]
        >>> a = [1, 2, 3, 4, 5, 6, 7]  
        >>> b = [i for i in a if i % 2 == 0]
        >>> b
        [2, 4, 6]

      # b是从a中选取满足i%2==0的元素组成的Lis

    =============================================================

    嵌套 For[if] 语句使用:

        >>> a = [1, 2, 3, 4, 5, 6, 7]
        >>> b = ['x', 'y', 'z']
        >>> newList = [ (i, j) for i in a for j in b ]
        >>> newList
        [(1, 'x'), (1, 'y'), (1, 'z'), (2, 'x'), (2, 'y'), (2, 'z'), (3, 'x'), (3, 'y'), (3, 'z'), (4, 'x'), (4, 'y'), (4, 'z'), (5, 'x'), (5, 'y'), (5, 'z'), (6, 'x'), (6, 'y'), (6, 'z'), (7, 'x'), (7, 'y'), (7, 'z')]
    
    
        >>> newList2 = [ (i, j) for i in a for j in b if i%2 == 0 and j<'z' ]
        >>> newList2
        [(2, 'x'), (2, 'y'), (4, 'x'), (4, 'y'), (6, 'x'), (6, 'y')]
  • 相关阅读:
    UVA401
    CodeForces 1330A
    CodeForces 1328C
    FZU 1759
    LightOJ 1259
    LightOJ 1341
    SDUT3930
    java入门 学习日志九(面向对象七)
    html 制作简单网页
    java入门 学习日志八(面向对象六)
  • 原文地址:https://www.cnblogs.com/blitheG/p/7552902.html
Copyright © 2011-2022 走看看