python - 简单化list的 For[if] 语句
2024-09-05 18:06:30
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')]
最新文章
- Android学习笔记之 android:collapseColumns ,android:shrinkColumns 和stretchColumns
- reverse-daily(1)-audio_visual_receiver_code
- <;<;人性的弱点>;>;读书笔记
- sublime text 也能矩形选择
- Python创建list和按照索引访问list
- 前端开发自动化工作流工具,JavaScript自动化构建工具grunt、gulp、webpack介绍
- CDN缓存策略FAQ
- Struts 2简单配置分析
- mysql undo
- Ring3下Hook NtQueryDirectoryFile隐藏文件
- Android安全开发之启动私有组件漏洞浅谈
- java 分页导出百万级数据到excel
- ubuntu14.04 64位 安装H3C iNode客户端
- excel导出使用get请求参数过长问题
- docker配置代理的用户名密码
- matlab rank
- LeetCode 19 - 删除链表的倒数第N个节点 - [链表]
- ReactNative项目结构目录详解
- <;20190104>;关掉一些鸡肋的Win10功能
- Linux基础命令---文本编辑ex
热门文章
- springboot导包spring-boot-starter-parent出现错误
- RateLimiter 源码分析(Guava 和 Sentinel 实现)
- 完整的JavaScript包括三部分、script标签、JavaScript的基本语法以及变量和字面量的关系
- vue elementui table组件内容换行
- Linux上安装JDK1.8,tomcat9,以及mysql8的步骤
- Centos7安装Python3的方法[转]
- Ubuntu16.04下caffe CPU版的图片训练和测试
- Ubuntu 16.04 orb-slam2配置
- Django模型层(各种表及表数据的操作)
- java面向对象2-封装