文档章节

零基础学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
09/10
0
0
python编程中常用的12种基础知识总结

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

dandan.fs
2013/10/14
0
1
一个开发十年的程序员论:学习Python最正确的步骤(0基础必备)

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

糖宝lsh
09/10
0
0
如何用 Python 可视化《三国》人物与兵器出现频率?(视频教程)

咱们以《三国演义》人名和兵器谱为例,尝试读取不同结构的文本文件,并且对其中的信息进行统计分析和可视化。 入门 如何帮助学生高效入门 Python ,一直是困扰我的问题。 总结经验后,我写下...

王树义
06/03
0
0
Python爬虫入门 | 3 爬虫必备Python知识

点击上方蓝色字体,关注我们 15 这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源。看着文章,打开电脑动手实践,平均45分钟就...

ch3ruf0termb3yh
04/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

“敏捷开发”怎么就“敏捷”了

什么是敏捷开发 传统的软件开发过程中,我们往往会针对特定的用户需求,采用“瀑布模型”,从用户的需求开始一步步进行需求分析、软件设计、软件开发、软件测试以及软件交付与维护。 然而,这...

SamYjy
40分钟前
2
0
聊聊我怎么系统学习Linux技能并快速提高的

随着电子信息科技时代的发展,学会使用计算机在我们的生活中成为了必不可少的一项技能。而作为计算机中的三大操作系统之一的Linux更是饱受计算机爱好者们的喜爱。今天我们就来和大家一起聊一...

linuxprobe16
52分钟前
3
0
MySQL专题—— 从认识索引到理解索引【索引优化】

认识索引 认识索引是什么东西非常关键,一个非常恰当的比喻就是书的目录页与书的正文内容之间的关系,为了方便查找书中的内容,通过对内容建立索引形成目录。因此,首先你要明白的一点就是,...

架构师springboot
56分钟前
2
0
Java-怎样构造方法和匿名对象

前言 在编写程序时不安全的初始化会导致程序发生发生重大错误。为了使程序可以被安全地初始化,C++引入了构造器(也可以成为构造方法)的概念,这是一个在创建对象时被自动调用的特殊方法。J...

小刀爱编程
今天
2
0
7、MyBaties 增删改

事务 : 从数据库角度出发,完成业务时需要执行的 SQL 集合,统称一个事务. 1、在 mybatis 中默认是关闭了 JDBC 的自动提交功能 每一个 SqlSession 默认都是不自动提交事务. session.commit()提...

KingFightingAn
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部