文档章节

零基础学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?

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

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

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

糖宝lsh
09/10
0
0
一个月入门Python爬虫,快速获取大规模数据

数据是创造和决策的原材料,高质量的数据都价值不菲。而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣、知乎:爬取优质答案,筛选出各话题下热门内容,探索...

Python开发者
04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

android webrtc使用opensl es

1. java层开启开关 peerConnectionParameters = new PeerConnectionClient.PeerConnectionParameters(); 接口中的useOpensles参数设置为true 2. /system/etc/permissions/下新增and......

bill_shen
23分钟前
0
0
读《高性能mysql》记录

1 2

李佳顺
24分钟前
0
0
Element UI框架+Vue开发搭建示例

一、关于Element 1.Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库,官方网址:http://element-cn.eleme.io/#/zh-CN 2.Element UI 是饿了么前端团队倾情打造htt...

tianma3798
26分钟前
2
0
Fragment整理

1、Fragment父类 Fragment的父类有两个,分别为android.app.Fragment和android.support.v4.app.Fragment。建议使用android.support.v4.app.Fragment。因为此Fragment在所有的android版本中可...

西米小娅
32分钟前
0
0
mysql报错:所选列未在GROUP BY子句中 的解决方法(laravel框架)

数据库配置文件database.php文件的 'mysql' => [ 'strict' => false] strict改为false,应该是开启宽松模式,就不会报错了...

郭周园
36分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部