python的list数据

    >>>a=[, , , , , , ]
>>>b=a
>>>b
[, , , , , , ]

用这种方式将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')]

最新文章

  1. Android学习笔记之 android:collapseColumns ,android:shrinkColumns 和stretchColumns
  2. reverse-daily(1)-audio_visual_receiver_code
  3. &lt;&lt;人性的弱点&gt;&gt;读书笔记
  4. sublime text 也能矩形选择
  5. Python创建list和按照索引访问list
  6. 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
  7. CDN缓存策略FAQ
  8. Struts 2简单配置分析
  9. mysql undo
  10. Ring3下Hook NtQueryDirectoryFile隐藏文件
  11. Android安全开发之启动私有组件漏洞浅谈
  12. java 分页导出百万级数据到excel
  13. ubuntu14.04 64位 安装H3C iNode客户端
  14. excel导出使用get请求参数过长问题
  15. docker配置代理的用户名密码
  16. matlab rank
  17. LeetCode 19 - 删除链表的倒数第N个节点 - [链表]
  18. ReactNative项目结构目录详解
  19. &lt;20190104&gt;关掉一些鸡肋的Win10功能
  20. Linux基础命令---文本编辑ex

热门文章

  1. springboot导包spring-boot-starter-parent出现错误
  2. RateLimiter 源码分析(Guava 和 Sentinel 实现)
  3. 完整的JavaScript包括三部分、script标签、JavaScript的基本语法以及变量和字面量的关系
  4. vue elementui table组件内容换行
  5. Linux上安装JDK1.8,tomcat9,以及mysql8的步骤
  6. Centos7安装Python3的方法[转]
  7. Ubuntu16.04下caffe CPU版的图片训练和测试
  8. Ubuntu 16.04 orb-slam2配置
  9. Django模型层(各种表及表数据的操作)
  10. java面向对象2-封装