Python实战之路-day6
一无所知的世界,走下去,才有惊喜。 Hello Python - day6!
- 列表生产式
- 语句格式
[x for x in 内容] [x for x in 内容 if 条件]1)把要生成的元素x放到前面,执行的时候,先执行后面的for循环 2)后面跟上for循环,可以有多个for循环,也可以在for循环后面再加个if条件 3)for循环后面可以是任何方式的迭代器(元组、列表、生成器等)只要迭代对象的元素中至少有一个值
- 单循环列表生产式
1 >>> a = "abcd" 2 >>> [x for x in a] 3 ['a', 'b', 'c', 'd'] 4 5 展开写为: 6 >>> a = "abcd" 7 >>> b = [] 8 >>> for x in a: 9 ... b.append(x) 10 ... 11 >>> print b 12 ['a', 'b', 'c', 'd']
- 双循环列表生产式
1 >>> [m+n for m in 'abc' for n in 'ABC'] 2 ['aA', 'aB', 'aC', 'bA', 'bB', 'bC', 'cA', 'cB', 'cC'] 3 4 展开写为: 5 >>> b = [] 6 >>> for n in 'ABC': 7 ... for m in 'abc': 8 ... b.append(n+m) 9 ... 10 >>> print b 11 ['Aa', 'Ab', 'Ac', 'Ba', 'Bb', 'Bc', 'Ca', 'Cb', 'Cc']
- 加if判断的列表生成式 --- 执行顺序 for 循环 嵌套 if 判断 最后输出
1 >>> [x*x for x in range(1,11) if x%2 == 0] 2 [4, 16, 36, 64, 100] 3 4 展开写为: 5 >>> a = [] 6 >>> for x in range(1,11): 7 ... if x%2 == 0: 8 ... a.append(x*x) 9 ... 10 >>> print a 11 [4, 16, 36, 64, 100] 12 13 14 实际用例:迭代字典生成列表 15 >>> dict = {'name':'guanqing','age':'28','sex':'man'} 16 >>> field = [k for k,v in dict.items()] 17 >>> value = [v for k,v in dict.items()] 18 >>> field 19 ['age', 'name', 'sex'] 20 >>> value 21 ['28', 'guanqing', 'man']
- 字典生产式
- 语句格式
1 dict = {k:v for (k,v) in iterable} #iterable 可迭代的,就是可以被for循环的 2 3 可以用任何方式的迭代器(元组、列表、生成器等)只要可迭代队形的元素中有两个值 4 5 >>> c = [4, 16, 36, 64, 100] 6 >>> {v:v for v in c} 7 {16: 16, 36: 36, 4: 4, 64: 64, 100: 100} 8 >>> {v:v*2 for v in c} 9 {16: 32, 36: 72, 4: 8, 64: 128, 100: 200} 10 >>> {v:v*2 for v in 'abcd'} 11 {'a': 'aa', 'c': 'cc', 'b': 'bb', 'd': 'dd'} 12 >>> d = {'a': 'aa', 'c': 'cc', 'b': 'bb', 'd': 'dd'} 13 >>> {v:k for k,v in d.items()} 14 {'aa': 'a', 'cc': 'c', 'dd': 'd', 'bb': 'b'}
列表和字典生成式的区别:
列表生产式:前面只需要是用一个值,后面for循环可迭代对象,用[]括住整个语句 字典生产式:前面需要使用两个值,后面for循环存在2个值的可迭代队形,用{}括住整个语句
- 列表、字典生成式应用场景
- 模拟从数据库取值,换成字典、然后传给前端
user = (1,'wd','18','sa') # 数据库传来的数据 …… …… {'age':'18','id':'1','name':'wd','job':'sa'} # 转换完的样式方式一: >>> user=(1,'guanqing','28','sa') >>> field=['id','name','age','job'] >>> zip(field,user) [('id', 1), ('name', 'guanqing'), ('age', '28'), ('job', 'sa')] >>> dict(zip(field,user)) {'job': 'sa', 'age': '28', 'id': 1, 'name': 'guanqing'}zip函数详解:http://www.jb51.net/article/53051.htm 方式二: >>> field =['id','name','age','job'] >>> user=(1,'guanqing','28','sa') >>> dict((k,user[i]) for i,k in enumerate(field)) {'job': 'sa', 'age': '28', 'id': 1, 'name': 'guanqing'}语句解析: 1)通过enumerate函数取出field列表中信息和对其对应的账号 >>> field =['id','name','age','job'] >>> for i,k in enumerate(field): ... print i,k ... 0 id 1 name 2 age 3 job2)通过序号可以获取到user列表中对应的信息 3)使用字典生产式,依托两个列表信息创建字典 >>> dict((k,user[i]) for i,k in enumerate(field)) {'job': 'sa', 'age': '28', 'id': 1, 'name': 'guanqing'}
- 使用列表、字典生产式优化作业代码
转载于:https://www.cnblogs.com/guanqingye/p/7509394.html
Python实战之路-day6相关推荐
- Python 进阶之路 (八) 最用心的推导式详解 (附简单实战及源码)
什么是推导式 大家好,今天为大家带来问我最喜欢的Python推导式使用指南,让我们先来看看定义~ 推导式(comprehensions)是Python的一种独有特性,推导式是可以从一个数据序列构建另一 ...
- python自动化运维之路~DAY6
python自动化运维之路~DAY6 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果你想开发一款游戏,会存在角色的混搭的情况,这个时候"面向对象过程"就出 ...
- 【Python实战】数据预处理(数据清理、集成、变换、归约)
[Python实战]数据预处理 前言 数据预处理概述 数据清理 异常数据处理 1.异常数据分析 2.异常数据处理方法 缺失值处理 噪声数据处理 数据集成 1.实体识别 2.冗余属性 3.数据不一致 数 ...
- 我的Python学习之路(一)_Mr_Ouyang
我的Python学习之路(一)_Mr_Ouyang 笔者按: 本文从18:55开始写作,至19:38中断,又从21:12始继续,至23:22写就. 共计耗时113分钟,总字数9081字,约80.4字/ ...
- Python实战,爬取金融期货数据
大家好,我是毕加锁. 今天给大家带来的是 Python实战,爬取金融期货数据 文末送书! 文末送书! 文末送书! 任务简介 首先,客户原需求是获取https://hq.smm.cn/copper网 ...
- 整理了200多个Python实战案例,都有完整且详细的教程
不管是学习什么语言,最终目的都是做项目.搜遍全网,整理了200多个Python实战的小项目,都有完整的代码,以及代码中用到的数据源等等.可以直接拿来用,也可以用于学习练手寻找思路. 告别枯燥,60秒学 ...
- 干货满满的 Python 实战项目,点赞收藏
作者 | 俊欣 来源 | 关于数据分析与可视化 今天小编来给大家介绍3个干货满满的计算机视觉方向的Python实战项目,主要用到的库有 opencv-python numpy pillow 要是大家所 ...
- python语言type board_菜鸟学Python,双手奉上老司机给上路新手总结的Python实战问题……...
针对Python这一话题每天后台都会有不少小伙伴提出问题,下面我就将这些问题进行汇整,产出"Python实战问题篇",我认为这些问题非常具有代表性,希望可以帮到大家. 第一类问题: ...
- App项目实战之路(二):API篇
原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/practice/20160812 微信订阅号:keeganlee_me 写于2016- ...
- python 靶心_手把手教你使用Python实战反欺诈模型|原理+代码
原标题:手把手教你使用Python实战反欺诈模型|原理+代码 作者 | 萝卜 来源 | 早起Python(ID: zaoqi-python) 本文将基于不平衡数据,使用Python进行 反欺诈模型数据 ...
最新文章
- shell 远程协助协助(转载)
- 马凯军201771010116《面向对象程序设计(java)》第二周学习总结
- deepin8、9安装docker并添加用户,解决报错:aptsources.distro.NoDistroTemplateException
- python 数组打包_Python:打包多字节数组
- 帆软报表,报错:sql注入攻击问题
- [教程]centos卸载、安装mysql(源码编译安装方式)
- 408考研经验分享(待更
- python制作电子签名
- word用宏设置图片的大小
- 2021年最完善的谷歌SEO关键词调研技巧
- linux驱动数码管-基于74HC164D
- css 平移到某个位置_css怎么移图片位置?
- 一剪梅·红藕香残玉簟秋
- 依概率收敛与按分布收敛
- Ubuntu查看并修改DNS
- 判断无向图G是否是一颗树
- 2021最新微信影视小程序源码无限代开+搭建详细教程
- libuv之mingw64环境搭建及编译Libuv
- filebeat重复采集数据问题排查
- DataFrame的元素选择与赋值