说明:

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之旅】第二篇(二):列表与元组相关推荐

  1. Python开发【第二篇】:初识Python

    Python开发[第二篇]:初识Python Python简介 Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为 ...

  2. Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像-续

    之前写过一篇按照指定行列号数量来进行影像等距离裁剪的博客,链接如下: Python遥感图像处理应用篇(二十二):Python+GDAL 批量等距离裁剪影像_空中旋转篮球的博客-CSDN博客_pytho ...

  3. Python 学习日记第二篇 -- 列表,元组

    一.列表 列表是一个可以包含所以数据类型的对象的位置有序集合,它是可以改变的.    1.列表的序列操作(Python3) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ...

  4. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  5. Python遥感图像处理应用篇(二十四):Python绘制遥感图像各波段热力图(相关系数矩阵)

    给多光谱遥感图像各个波段绘制热力图,首先需要计算波段之间的相关系数矩阵,而计算遥感图像波段相关系数矩阵有不同的方法,常用的我们可以采用遥感图像处理软件计算,比如ENVI软件就可以计算相关系数矩阵,使用 ...

  6. Python遥感图像处理应用篇(二十五):Python+GDAL 波段组合

    1.使用场景描述 之前使用arcpy python2.7写了一篇进行遥感数据波段组合计算的博文,使用场景是将所有单波段数据放在一个文件夹中(如下图),文件名称前缀一样,后缀波段编号用来区分不同的波段, ...

  7. python 的与众不同 -- 网络篇(二、网络请求/urllib)

    urllib是一个包,收集几个模块与url: urllib.request 用于打开和读取url urllib.error 包含由urllib.request引发的异常 urllib.parse 解析 ...

  8. 自兴人工智能——Python第二课(列表和元组)

    1.列表是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合,在这种数据结构上进行的基本操作包括对元素的查找,插入,删除. 列表与元组字典不同之处是:列表的内容是可变的. 1.   ...

  9. python基础语法合集-Python基础语法(四)—列表、元组、字典、集合、字符串

    列表 基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制: 列表索引值以0为开始值,-1为从未尾的开始位置. 列表可以使用+操作符进行拼接,使用*表示重复. 当列表元素增 ...

  10. Python程序开发——第三章 列表与元组

    目录 前言 一.列表 (一)列表的创建 (二)访问列表元素 (三)列表的增删改 (四)列表的遍历 (五)列表的排序 (六)列表的嵌套 二.元组 (一)元组的创建 (二)访问元组元素 (三)元组的连接组 ...

最新文章

  1. BZOJ 1604 [Usaco2008 Open]Cow Neighborhoods 奶牛的邻居:队列 + multiset + 并查集【曼哈顿距离变形】...
  2. Android App 瘦身总结 第一章 图片资源的优化处理
  3. linux命令去除重复的值,学习linux的Split 命令-linux下去除重复的命令uniq用法...-linux下join与paste命令的用法_169IT.COM...
  4. 嵌入式Linux内核移植相关代码分析(转)
  5. 小程序 报错 err code: 40029, errmsg: 'invalid code, hints: [ req_id: JhIay6yFe-XN5A3 ]'
  6. win8 oracle10g,win7/win8 下安装oracle10g的方法
  7. python字符串(连载二)|字符串内置函数原来还可以这么玩!
  8. Java设计模式-策略模式、状态模式
  9. oracle卸载客户端,oracle11g客户端如何完全卸载
  10. 北京内推 | 启元世界招聘虚拟人算法工程师/实习生
  11. 美团的2020年:千亿美元帝国的贪吃蛇游戏,气势汹汹也危机重重
  12. 【SaltStack官方版】—— EventsReactor系统—BEACONS
  13. 基于G-sensor的计步解决方案
  14. 第13节 eclipse简介
  15. kali安装openvas全过程
  16. python画素描画_使用Python将图片变成铅笔素描
  17. 四书《孟子》《论语》《中庸》《大学》五经《风》《雅》《颂》全文
  18. 报错:Misplaced alignment tab character 的解决办法以及参考文献的书写方式、There were undefined citations.解决办法
  19. redis如何设置定时过期_redis设置过期时间
  20. 天津大学计算机学院院长及副院长,于瑞国

热门文章

  1. 提高开发效率,eclipse的常用快捷键、旁门左道、系统错误小贴士
  2. docker存储驱动模式之direct-lvm配置
  3. CodeForces 840C - On the Bench | Codeforces Round #429 (Div. 1)
  4. [Guava源码日报(1)]Guava类库简介
  5. 【状压DP】poj2686 Traveling by Stagecoach
  6. EM算法原理简析——图解
  7. 定制操作(传递函数或lambda表达式)
  8. extjs4.1单击treepanel节点收缩叶子节点
  9. 阿里云全新一代FaaS平台F3(VU9P)实例发布
  10. 写出优质Java代码的4个技巧