python - 简单化list的 For[if] 语句
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')]
python - 简单化list的 For[if] 语句的更多相关文章
- 【循序渐进学Python】5.Python常用流程控制及其他语句
1. 赋值语句常用技巧 通过序列解包(sequence unpacking)可以将多个值的序列解开,让后一一放置到变量的序列中.解包的序列中的元素必须和等号左边变量数量一致.如下: values = ...
- python入门学习:4.if语句
python入门学习:4.if语句 关键点:判断 4.1 一个简单的测试4.2 条件测试4.3 if语句 4.1 一个简单的测试 if语句基本格式如下,注意不要漏了冒号 1if 条件 :2 ...
- Python 学习 第五篇:语句和语法
Python程序是语句构成的,语句包含表达式,表达式嵌套在语句中,包含变量和常量,用于处理对象.Python的语法实质上是由表达式.语句和代码块构成的.语句是由表达式构成的,代码块是由多个语句构成的复 ...
- 查找Python包的依赖包(语句)
Window 10家庭中文版,Python 3.6.4, 今天看完了urllib3的官文(官方文档),因为没有具体使用过,所以,仍然是一知半解,但是,突然想知道 urllib3以及前面学习过的requ ...
- python之django直接执行sql语句
python之django直接执行sql语句 sql = 'select * from stu' info = 模型类.objects.raw(sql)
- python 3 mysql sql逻辑查询语句执行顺序
python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_t ...
- 学习Python笔记---if 语句
条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试.Python根据条件测试的值True还是False来决定是否执行if语句中的代码.如果条件测试的值为Tr ...
- Python while 循环中使用 else 语句
Python while 循环中使用 else 语句: else:表示 while 中的语句正常执行完,然后执行 else 语句的部分. 示例: # while 判断条件: # 一行语句 或 多行语句 ...
- python中使用excutemany执行update语句,批量更新
python中使用excutemany执行update语句,批量更新 # coding:utf8 import pymysql import logging connection = pymysql. ...
随机推荐
- 企业级开发账号In House ipa发布流程
这两天需要发布一个ipa放到网上供其他人安装,需要用到企业级开发者账号.在网上查了一下资料,感觉没有一个比较完善的流程,于是决定把整个流程写下来,供大家参考. 首先详细说明一下我们的目标,我们需要发布 ...
- Hash介绍
Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就 ...
- iptables-restore - 恢复 IP Tables
总览 SYNOPSIS iptables-restore [-c] [-n] 描述 DESCRIPTION iptables-restore 用来从 STDIN 给出的数据中恢复 IP Tables. ...
- zabbix发送报警的脚本
zabbix报警媒介:自定义脚本Custom alertscripts 邮件报警准备工作:安装sendEmail zabbix-server 的 配置文件 /etc/zabbix/zabbix_ser ...
- RedHat7安装yum工具
一 RedHat7安装yum工具 1.1 查看yum是否可用 yum list yum repolist 1.2 卸载原yum rpm ...
- IDeajCommunity 配置smart tomcat插件
ntelliJ IDEA社区版没有自带tomcat. 装插件--smart tomcat. IntelliJ IDEA>>Preferences>>Plugins>> ...
- webpack 热更新
1.安装webpack npm install webpack -g //全局安装 npm install webpack --save-dev //开发环境 2.使用webpack 创建一个we ...
- ESP8266--TCP Server
所谓server,可以简单理解为提供服务,提供数据的一个地方 ESP8266上建立一个server是比较简单的,不过是属于局域网内的server,因为真正意义上的server并不是这样的,大伙了解一个 ...
- npm 安装时 --save --dev 和 --save 区别
一.模式 运行webpack命令时,一定要指定模式. webpack --mode developmentwebpack --mode production二.--save -dev --save:将 ...
- c++string int转化简单写法
#include<iostream> #include<string> #include<sstream> //定义了stringstream类 using nam ...