【Python之旅】第二篇(二):列表与元组
说明:
Python中的列表类似于其它高级语言中的数组,不过Python的列表操作起来要轻松很多。
Python中列表的学习主线主要是围绕对列表参数的操作使用上,重点关注的应该有如下这些:
names.append( names.count( names.extend( names.index( names.insert( names.pop( names.remove( names.reverse( names.sort(
下面的内容基本上都是围绕上面的操作进行说明。
1.基本操作
·基本的操作主要有如下:
names[num]:排序为数字num的元素 names[-1:]:最后1个元素 names[-5:]:最后5个元素 names[-5:-1]:最后5个元素,但不包括最后1个元素(即不包括names[-1]) names[:5]:开始5个元素(即不包括names[5]) names[0:5]:开始5个元素(即不包括names[5]) names[10:15]:names[10]到names[14]
·上面有取范围的情况,前后两个数字,可以记为:“虎头蛇尾”,即取前不取后
· 以下面的环境做一个简单的测试:
>>> names = ['xpleaf','yonghaoyip','CL'] >>> names.extend(range(30)) >>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
(1)names[num]:排序为数字num的元素
>>> names[2] 'CL'
(2)names[-1:]:最后1个元素
>>> names[-1:] [29]
(3)names[-5:]:最后5个元素
>>> names[-5:] [25, 26, 27, 28, 29]
(4)names[-5:-1]:最后5个元素,但不包括最后1个元素(即不包括names[-1])
>>> names[-5:-1] [25, 26, 27, 28]
(5)names[:5]或names[0:5]:开始5个元素(即不包括names[5])
>>> names[:5] ['xpleaf', 'yonghaoyip', 'CL', 0, 1] >>> names[0:5] ['xpleaf', 'yonghaoyip', 'CL', 0, 1]
(6)names[10:15]:names[10]到names[14]
>>> names[10:15] [7, 8, 9, 10, 11] >>> names[10] 7 >>> names[14] 11 >>> names[15] 12
2.append()参数
·基本功能:向列表中添加元素
·基本语法:
names.append('xpleaf')
·append()参数在列表的最后面增加元素,一次只能添加一个;
·演示如下:
>>> names.append('xpleaf') >>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf']
3.count()参数
·基本功能:计算列表中相同元素的个数
·基本语法:
names.count('xpleaf')
·演示如下:
>>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf'] >>> names.count('xpleaf') 2
·进阶演示:count()可以比较字符串中是否含有包含的字符串
>>> name = 'xpleaf' >>> name.count('xp') 1 >>> name.count('leaf') 1 >>> name.count('xpleaf123') 0 ===>如果包含有查找的字符串,则返回1,否则返回0
4.extend()参数
·基本功能:将另一个列表中的元素合并到当前列表中
·基本语法:
names.extend(range(10)) 等价于下面的内容: names = names + range(10) ===>列表也可以直接做加法,Python中序列的特性
·演示如下:
>>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf'] >>> range(10) ===>range()的输出本来就是一个列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> names.extend(range(10)) >>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
·append()添加的是列表中的元素,如果写成下面这样:
names.append(range(10)) ===>只会在names列表末尾处添加一个列表元素[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
5.index()参数
·基本功能:找出需要查找的列表元素的索引号
·基本语法:
names.index('xpleaf')
·如果列表中有多个相同元素,index()找出的只是第1个相同元素的索引号
·演示如下:
>>> names.append('CL') >>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'CL'] >>> names.index('xpleaf') 0 >>> names.index('CL') 2 >>> names[2] 'CL'
6.inset()参数
·基本功能:在列表中某一位置插入元素
·基本语法:
names.insert(6,'love') ===>在列表的索引号为6的位置中插入元素'love'
·演示如下:
>>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'CL'] >>> names.insert(6,'love') >>> names ['xpleaf', 'yonghaoyip', 'CL', 0, 1, 2, 'love', 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'CL'] >>> names[6] 'love'
--小的综合操作:将上面列表中的'xpleaf'替换为'xpleaf_Yip'
·未充分利用Python特性的笨方法:
>>> while True: ... if names.count('xpleaf') == 0: ... break ... else: ... names[names.index('xpleaf')] = 'xpleaf_Yip' ... >>> names ['xpleaf_Yip', 'yonghaoyip', 'CL', 0, 1, 2, 'love', 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf_Yip', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'CL']
·虽然可以达到目的,但实际上该方法是比较笨的;
·充分利用Python特性的方法:
>>> for i in range(names.count('xpleaf')): ... names[names.index('xpleaf')] = 'xpleaf_Yip' ... >>> names ['xpleaf_Yip', 'yonghaoyip', 'CL', 0, 1, 2, 'love', 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf_Yip', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'CL']
7.pop()参数
·基本功能:将列表中最后一个元素删除
·基本语法:
names.pop()
·演示如下:
>>> names ['xpleaf_Yip', 'yonghaoyip', 'CL', 0, 1, 2, 'love', 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf_Yip', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'CL'] >>> names.pop() 'CL' >>> names ['xpleaf_Yip', 'yonghaoyip', 'CL', 0, 1, 2, 'love', 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf_Yip', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
8.remove()参数
·基本功能:删除列表中指定内容的元素
·基本语法:
names.remove('love') ===>删除列表中'love'元素
·演示如下:
>>> names ['xpleaf_Yip', 'yonghaoyip', 'CL', 0, 1, 2, 'love', 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf_Yip', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> names.remove('love') >>> names ['xpleaf_Yip', 'yonghaoyip', 'CL', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf_Yip', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
·如果存在多个相同的元素,则只删除第1个:
>>> names.remove(0) >>> names ['xpleaf_Yip', 'yonghaoyip', 'CL', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'xpleaf_Yip', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
9.sort()参数
·基本功能:以ASCII表的顺序对列表中的元素进行排序,纯数值元素会在前面
·基本语法:
names.sort()
·演示如下:
>>> names.sort() >>> names [0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 'CL', 'xpleaf_Yip', 'xpleaf_Yip', 'yonghaoyip']
·如果有多个元素的字符串,则按字符串中的字符依次顺序比较,直到有不相同的为止;
10.reverse()参数
·基本功能:将原来列表中的元素倒序存储
·基本语法:
names.reverse()
·演示如下:
>>> names.reverse() >>> names ['yonghaoyip', 'xpleaf_Yip', 'xpleaf_Yip', 'CL', 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0]
11.与列表相关的其它操作
--删除列表中的元素:del
·不用remove()的方式删除,需要指定索引号;
·演示如下:
>>> names ['yonghaoyip', 'xpleaf_Yip', 'xpleaf_Yip', 'CL', 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0] >>> names[2] 'xpleaf_Yip' >>> del names[2] >>> names ['yonghaoyip', 'xpleaf_Yip', 'CL', 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0]
--将字符串内容变为列表中的元素:list()
·演示如下:
>>> import string >>> string.ascii_lowercase 'abcdefghijklmnopqrstuvwxyz' >>> a = list(string.ascii_lowercase) >>> a ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
--将列表中的元素连接为字符串:''.join()
·str()只会将整个列表作为一个字符串:
>>> str(a) "['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']"
·把列表元素连接成字符串方法如下:
>>> ''.join(a) 'abcdefghijklmnopqrstuvwxyz' >>> '_'.join(a) 'a_b_c_d_e_f_g_h_i_j_k_l_m_n_o_p_q_r_s_t_u_v_w_x_y_z'
·''.join()参数中的列表元素只能是字符串型,不能是数值型:
>>> str(names) "['yonghaoyip', 'xpleaf_Yip', 'CL', 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 0]" >>> ''.join(names) Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: sequence item 3: expected string, int found
12.元组的提及
·元组跟列表一样,但元组内容一旦生成,无法修改;
·元组主要是用来存储别人不能修改的内容;
·元组的相关操作演示和说明如下:
>>> tuple = ('a', 'b', 'c', 1, 2, 3) >>> tuple ('a', 'b', 'c', 1, 2, 3) >>> tuple[3] ===>取特定一个元素时,与列表类似 1 >>> tuple[3] = 'b' ===>不能修改元组的元素内容 Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> del tuple[3] ===>也不能删除元组中的某一元素 Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: 'tuple' object doesn't support item deletion >>> list(tuple) ['a', 'b', 'c', 1, 2, 3] >>> tuple. ===>按tab键后可以看到只有count()和index()参数与列表相似 …… tuple.count( tuple.index(
·将元组变为列表时可使用list()函数。
转载于:https://blog.51cto.com/xpleaf/1692957
【Python之旅】第二篇(二):列表与元组相关推荐
- Python开发【第二篇】:初识Python
Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为 ...
- Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像-续
之前写过一篇按照指定行列号数量来进行影像等距离裁剪的博客,链接如下: Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像_空中旋转篮球的博客-CSDN博客_pytho ...
- Python 学习日记第二篇 -- 列表,元组
一.列表 列表是一个可以包含所以数据类型的对象的位置有序集合,它是可以改变的. 1.列表的序列操作(Python3) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...
- 初学Python——文件操作第二篇
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...
- Python遥感图像处理应用篇(二十四):Python绘制遥感图像各波段热力图(相关系数矩阵)
给多光谱遥感图像各个波段绘制热力图,首先需要计算波段之间的相关系数矩阵,而计算遥感图像波段相关系数矩阵有不同的方法,常用的我们可以采用遥感图像处理软件计算,比如ENVI软件就可以计算相关系数矩阵,使用 ...
- Python遥感图像处理应用篇(二十五):Python+GDAL 波段组合
1.使用场景描述 之前使用arcpy python2.7写了一篇进行遥感数据波段组合计算的博文,使用场景是将所有单波段数据放在一个文件夹中(如下图),文件名称前缀一样,后缀波段编号用来区分不同的波段, ...
- python 的与众不同 -- 网络篇(二、网络请求/urllib)
urllib是一个包,收集几个模块与url: urllib.request 用于打开和读取url urllib.error 包含由urllib.request引发的异常 urllib.parse 解析 ...
- 自兴人工智能——Python第二课(列表和元组)
1.列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的查找,插入,删除. 列表与元组字典不同之处是:列表的内容是可变的. 1. ...
- python基础语法合集-Python基础语法(四)—列表、元组、字典、集合、字符串
列表 基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制: 列表索引值以0为开始值,-1为从未尾的开始位置. 列表可以使用+操作符进行拼接,使用*表示重复. 当列表元素增 ...
- Python程序开发——第三章 列表与元组
目录 前言 一.列表 (一)列表的创建 (二)访问列表元素 (三)列表的增删改 (四)列表的遍历 (五)列表的排序 (六)列表的嵌套 二.元组 (一)元组的创建 (二)访问元组元素 (三)元组的连接组 ...
最新文章
- BZOJ 1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居:队列 + multiset + 并查集【曼哈顿距离变形】...
- Android App 瘦身总结 第一章 图片资源的优化处理
- linux命令去除重复的值,学习linux的Split 命令-linux下去除重复的命令uniq用法...-linux下join与paste命令的用法_169IT.COM...
- 嵌入式Linux内核移植相关代码分析(转)
- 小程序 报错 err code: 40029, errmsg: 'invalid code, hints: [ req_id: JhIay6yFe-XN5A3 ]'
- win8 oracle10g,win7/win8 下安装oracle10g的方法
- python字符串(连载二)|字符串内置函数原来还可以这么玩!
- Java设计模式-策略模式、状态模式
- oracle卸载客户端,oracle11g客户端如何完全卸载
- 北京内推 | 启元世界招聘虚拟人算法工程师/实习生
- 美团的2020年:千亿美元帝国的贪吃蛇游戏,气势汹汹也危机重重
- 【SaltStack官方版】—— EventsReactor系统—BEACONS
- 基于G-sensor的计步解决方案
- 第13节 eclipse简介
- kali安装openvas全过程
- python画素描画_使用Python将图片变成铅笔素描
- 四书《孟子》《论语》《中庸》《大学》五经《风》《雅》《颂》全文
- 报错:Misplaced alignment tab character 的解决办法以及参考文献的书写方式、There were undefined citations.解决办法
- redis如何设置定时过期_redis设置过期时间
- 天津大学计算机学院院长及副院长,于瑞国
热门文章
- 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
- docker存储驱动模式之direct-lvm配置
- CodeForces 840C - On the Bench | Codeforces Round #429 (Div. 1)
- [Guava源码日报(1)]Guava类库简介
- 【状压DP】poj2686 Traveling by Stagecoach
- EM算法原理简析——图解
- 定制操作(传递函数或lambda表达式)
- extjs4.1单击treepanel节点收缩叶子节点
- 阿里云全新一代FaaS平台F3(VU9P)实例发布
- 写出优质Java代码的4个技巧