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')]
  • 相关阅读:
    【题解】[USACO08DEC-Gold] Trick or Treat on the Farm
    【题解】[NOIP2015-TG] 信息传递
    【题解】[JLOI2011] 飞行路线
    平衡树
    斜率优化 dp 总结
    题解【P1833 樱花】
    题解【CodeForces 910A The Way to Home】
    三角恒等变换公式
    题解【洛谷 P1246 编码】
    生成函数(母函数)详解
  • 原文地址:https://www.cnblogs.com/blitheG/p/7552902.html
Copyright © 2011-2022 走看看