python 数据结构 list(3)
list解析
先看下面的例子,这个例子是想得到1到9的每个整数的平方,并且将结果放在list中打印出来
>>> power2 = []
>>> for i in range(1,10):
... power2.append(i*i)
...
>>> power2
[1, 4, 9, 16, 25, 36, 49, 64, 81]
python有一个非常有意思的功能,就是list解析,就是这样的:
>>> squares = [x**2 for x in range(1,10)]
>>> squares
[1, 4, 9, 16, 25, 36, 49, 64, 81]
- 找出100以内的能够被3整除的正整数。
我们用的方法是:
aliquot = []for n in range(1,100):if n%3 == 0:aliquot.append(n)print aliquot
用list解析重写,会是这样的:
>>> aliquot = [n for n in range(1,100) if n%3==0]
>>> aliquot
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
另一个:
>>> print range(3,100,3)
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
其实,不仅仅对数字组成的list,所有的都可以如此操作。
>>> mybag = [' glass',' apple','green leaf '] #有的前面有空格,有的后面有空格
>>> [one.strip() for one in mybag] #去掉元素前后的空格
['glass', 'apple', 'green leaf']
enumerate
这是一个有意思的内置函数,本来我们可以通过for i in range(len(list))的方式得到一个list的每个元素编号,然后在用list[i]的方式得到该元素。如果要同时得到元素编号和元素怎么办?就是这样了:
>>> for i in range(len(week)):
... print week[i]+' is '+str(i) #注意,i是int类型,如果和前面的用+连接,必须是str类型
...
monday is 0
sunday is 1
friday is 2
python中提供了一个内置函数enumerate,能够实现类似的功能
>>> for (i,day) in enumerate(week):
... print day+' is '+str(i)
...
monday is 0
sunday is 1
friday is 2
实验:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
在这里有类似(0,‘Spring’)这样的东西,这是另外一种数据类型,待后面详解。
下面将enumerate函数和list解析联合起来,同时显示,在进行list解析的时候,也可以包含进函数
>>> def treatment(pos, element):
... return "%d: %s"%(pos,element)
...
>>> seq = ["hiekay","hiekay.github.io","python"]
>>> [ treatment(i, ele) for i,ele in enumerate(seq) ]
['0: hiekay', '1: hiekay.github.io', '2: python']
函数lambda:
例如:
g = lambda x:x+1
ambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:
def g(x):return x+1
>>> seq = ["hiekay","hiekay.github.io","python"]
>>> foo = lambda i,ele:"%d:%s"%(i,ele) #lambda函数,给代码带来了简介
>>> [foo(i,ele) for i,ele in enumerate(seq)]
['0:hiekay', '1:hiekay.github.io', '2:python']
python 数据结构 list(3)相关推荐
- python3 namedtuple_你不能低估的Python数据结构Namedtuple(二)
上篇你不能低估的Python数据结构Namedtuple(一)讲了namedtuple的一些基本用法,本篇继续. namedtuples和数据类(Data Class)之间有什么区别? 功能 在Pyt ...
- python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...
python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...
- python数据结构 树_python数据结构之二叉树的建立实例
先建立二叉树节点,有一个data数据域,left,right 两个指针域 复制代码 代码如下: # -*- coding: utf - 8 - *- class TreeNode(object): d ...
- python数据结构包括什么_Python中的数据结构详解
概述 在深入研究数据科学和模型构建之前,Python中的数据结构是一个需要学习的关键内容 了解Python提供的不同数据结构,包括列表.元组等 介绍 数据结构听起来是一个非常直截了当的话题,但许多数据 ...
- python数据结构树和二叉树,python数据结构树和二叉树简介
一.树的定义 树形结构是一类重要的非线性结构.树形结构是结点之间有分支,并具有层次关系的结构.它非常类似于自然界中的树. 树的递归定义: 树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树 ...
- python数据结构推荐书-关于数据结构,有哪些不错的参考书推荐?
学习编程,数据结构是你必须要掌握的基础知识,那么数据结构到底是什么呢? 其实数据结构就是用来描述计算机里存储数据的一种数学模型,因为计算机里要存储很多乱七八糟的数据,所以也需要不同的数据结构来描述. ...
- CodeSalt | Python数据结构的实现 — 链表
Python数据结构实现-链表 1. 简单介绍 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Point ...
- Python数据结构——tuple
tuple 元组 什么是tuple 元组是一种和列表非常相似的线性数据结构,也支持不同的数据类型. 最大的区别就是元组一旦创建不可改变,和string一样,所有改变元组内容的操作都会返回一个新的元组. ...
- Python数据结构——list
list 列表 什么是list 列表是Python中特有的一种线性数据结构,列表是可变的,有序的,我们可以用选择操作符来改变任意位置的值,和数组不同的是,列表可以同时保存不同类型的元素(异构). 在C ...
- Python数据结构——array
array 数组 array是什么 一般来说,array基本是所有程序语言都有的一种基础线性结构,元素以特定的顺序存储在一段连续的内存中. 在Python中其实也有array这种数据结构,和其他语言的 ...
最新文章
- java队列研究_辨证论治失眠疗效评价的医生队列研究
- 12c双机rac oracle_深度干货 | 如何借助云原生搞定Oracle备份快速恢复?
- 我已经把servlet-api.jar加到classpath中了,可还是无法编译servlet
- vector的基本操作
- 导入不了css,CSS不导入。
- CodeForces - 1341E Nastya and Unexpected Guest(01bfs)
- 如何关闭SAP Fiori的病毒扫描设
- grunt入门 出处:http://artwl.cnblogs.com
- m3u8合并mp4软件_m3u8格式转mp4究极办法!
- agilebpm脑图_设计开发平台前端框架介绍 | AgileBPM 敏捷工作流开发平台—开源免费-基于 Activiti 工作流引擎、Flowable...
- Linux命令(压缩,解压rar)
- @Value竟然能玩出这么多花样,涨知识了
- copula 重现期 matlab,合肥市干旱识别及基于Copula的特征值重现期分析
- pandas最快入门(一)-读取与数据结构
- PLC可编程控制器实训设备
- Perl语言的多线程(一)
- CollectionView的HeaderView头视图悬停
- 集成声卡和独立声卡哪个的性能好些
- 2022数学建模高教杯国家一等奖经验分享
- Web测试的常见测试点
热门文章
- 使用VSccde上传文件到Git时可能出现的情况
- SOFAServerless 体系助力业务极速研发
- 2021大纲新增词汇
- 【题解】[Swerc2008]First Knight
- matlab 比较两个函数,Matlab同时拟合两个函数 - 数学 - 小木虫 - 学术 科研 互动社区...
- 三个表情纪念我的像素画讲座
- 豌豆荚搜索手机中的游戏app形成列表的原理
- 论文笔记:SubRank: Subgraph Embeddings via a Subgraph Proximity Measure2020PAKDD
- php.c drcom,Drcom (简体中文)
- MYSQL 基础篇(补)