文档章节

零基础学python-19.12 总结列表解析与字典解析

raylee2015
 raylee2015
发布于 2015/10/21 08:10
字数 517
阅读 1
收藏 0

这一章节我们来总结一下列表解析与字典解析的语法。

1.列表解析

(1){1,2,3}等同于set([1,2,3])

>>> aList={1,2,3}
>>> bList=set((1,2,3))
>>> aList is bList
False
>>> aList==bList
True
>>>


(2)列表解析就是使用set函数强迫生成器表达式生产所有值

>>> aList={x for x in range(5)}
>>> aList
{0, 1, 2, 3, 4}
>>> g=(x for x in range(5))
>>> g
<generator object <genexpr> at 0x01E692D8>
>>> set(x for x in range(5))
{0, 1, 2, 3, 4}


(3)在列表解析过程中,可以使用任意函数对相应的对象进行运算

>>> aList={x*x for x in range(5)}
>>> aList
{0, 1, 9, 16, 4}
>>> aList={x**3 for x in range(5)}
>>> aList
{0, 1, 8, 27, 64}
>>> def test(x):
	return x+1

>>> aList={test(x) for x in range(5)}
>>> aList
{1, 2, 3, 4, 5}
>>>

 

 


2.字典解析

(1)使用for

>>> aList={'a','b','c','d'}
>>> bList={1,2,3,4}
>>> aDict={x:y for (x,y) in zip(aList,bList)}
>>> aDict
{'a': 1, 'd': 2, 'c': 3, 'b': 4}
>>>


(2)使用dict函数

>>> aList={'a','b','c','d'}
>>> bList={1,2,3,4}
>>> aDict=dict(zip(aList,bList))
>>> aDict
{'a': 1, 'd': 2, 'c': 3, 'b': 4}
>>>


(3)在生成的过程中可以使用函数进行运算

>>> aList={'a','b','c','d'}
>>> bList={1,2,3,4}
>>> aDict={x:y**2 for (x,y) in zip(aList,bList)}
>>> aDict
{'a': 1, 'd': 4, 'c': 9, 'b': 16}
>>>


上面的所有解析都是一次性构建所有的结果,如果需要根据需求生产结果,那么上面的代码换成生成器表达式会更加的合适。

列表解析:

>>> g=(x for x in range(5))
>>> next(g)
0
>>> next(g)
1


字典解析:

>>> g=((x,x*x) for x in range(10))
>>> next(g)
(0, 0)
>>> next(g)
(1, 1)
>>>


对于字典解析,笔者暂时对于其他的构建不熟悉,暂时只是找到这种特殊的解析方式。

 

3.扩展

我们在原来的基础上扩展if的使用

>>> aList={x*x for x in range(5) if x%2==0}
>>> aList
{0, 16, 4}
>>>


总结,这一章节我们简单总结了列表解析与字典解析。

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/49232299

共有 人打赏支持
raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
Python基础总结成千行代码,让Python入门更简单!

只要学会这千行代码,不管你是零基础还是弱基础或是没有接触过编程,都可以快速入门Python!当时我就不信邪啊,等我看完之后,即使作为一个Python老鸟了,还是领会到了很多教授他的独特见解!...

糖宝lsh
2018/09/10
0
0
python编程中常用的12种基础知识总结

python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序、去重,字典排序,字典、列表、字符串互转,时间对象操 作,命令行参数解析(getopt),print 格式化输出,...

dandan.fs
2013/10/14
0
1
如何用Python优雅的写毕业论文

前言 又到了我校一年一度的论文开题和中期检查时间,平时看上去忙碌却一个字都还没写的学生还是大有人在的,而我也就是其中一位~今天,我就来说说我是如何利用Python帮小姐姐们写论文的。 PS...

罗罗攀
2018/12/08
0
0
如何用十分钟学会函数式 Python?

函数式编程到底是什么?本文将详解其概念,同时分享怎样在 Python 中使用函数式编程。主要内容包括列表解析式和其他形式的解析式。 函数式模型 在命令式模型中,执行程序的方式是给计算机一系...

CSDN资讯
2018/09/22
0
0
一个开发十年的程序员论:学习Python最正确的步骤(0基础必备)

很多人都在问Python学习步骤应该如何安排?多长时间可以达到精通呢? Python学习步骤应该怎样安排: 首先,学习Python编程技术,自学或者参加培训学习都适用,每个人都有自己的学习方式和方法...

糖宝lsh
2018/09/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

独家解密:阿里超大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

阿里云云栖社区
12分钟前
0
0
独家解密:阿里大规模数据中心性能分析

郭健美,阿里巴巴高级技术专家,目前主要从事数据中心的性能分析和软硬件结合的性能优化。CCF 系统软件专委和软件工程专委的委员。曾主持国家自然科学基金面上项目、入选上海市浦江人才计划A...

zhaowei121
15分钟前
0
0
mongodb系列~配置文件的优化与处理

mongodb系列~配置文件的优化与处理 一 简介:讲讲如何优化mongo配置文件 二 常规参数 port= //端口 fork=true//守护进程方式启动mongo logpath=shard.log //mongo日志存放路径 journal= tru...

linjin200
17分钟前
0
0
同一台 windows10 设备,安装两个不同版本的mysql

两个mysql 的my.ini文件需要 配置不同的端口。 [mysqld]# 设置3307端口port=3307# 设置mysql的安装目录basedir=F:\\mysql-5.7.24-winx64 # 切记此处一定要用双斜杠\\,单斜杠我这里...

无敌小学僧
18分钟前
0
0
条码插件TBarCode Office系列教程一(Word Add-In篇)

TBarCode Office是一款适用于Microsoft Word 2007、2010和2013的条码插件,通过此插件可以轻松的在您的文档中嵌入代码。此系列教程旨在介绍TBarCode Office的常见问题及解答,帮助大家学习使...

ymy_666666
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部