第二章:列表与元素

本章将引入一个新的概念:数据结构。数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合。这些数据元素可以是数字或者字符,甚至可以是其他数据结构。在python中,最基本的数据结构是序列。序列中的每个元素被分配一个序号--即元素的位置,也称为索引。第一个索引为0,第二个1,以此类推。序列中的最后一个数被标志为-1,倒数第二个为-2,。。。。

2.1 序列概览:

python有6种内建的序列,其中常见的两种序列:列表和元组,其他的有字符串,Unicode字符串,buffer对象和xrange对象

python中还有一种名为容器的数据结构。容器基本上是包含其他数据对象的任意对象。序列(例如列表和元组)和映射(例如字典)是两列最主要的容器。序列中每个元素都有自己的编号,而映射中的每个元素则有一个名字(也成为键)

2.2 通用序列操作

所有序列烈性都可以进行某些特定的操作。这些操作包括:索引、分片、加、乘以及检查某个元素是否属于序列的成员。

除此之外,python还有计算序列长度、找出最大元素和最小元素的内建函数。

还有迭代,即一次对序列中的每个元素重复进行某些操作

2.2.1 索引

序列中的手游元素都是有编号的---从0开始递增。这些元素可以通过编号分别进行访问,如下所示:

以下是一个脚本示例:

输出如下:

2.2.3 分片

与使用索引来访问单个元素类似,可以使用分片操作来访问一定范围内的元素。分片通过冒号隔开的两个索引来实现:

步长的概念:进行分片时,分片的开始和结束点需要进行指定(不管是直接还是间接),而另一个参数--步长--通常是隐式设置的。示例如下:

需要注意:

1.开始点的元素(最左边的)包括在结果中,而结束点的元素(最右边的)则不再分片中

2.当使用一个负数作为步长时,必须让开始点的索引大于结束点

3.在没有明确指定开始与结束点的时候,正负数的使用可能会带来一些混淆

2.2.3 序列相加

2.2.4 乘法

只能用数字与序列的乘法,原来的序列将会被重复n次

空列表:空列表可以简单的通过两个中括号来表示,里面什么都没有。

但是如果想创建一个占用10个元素空间,却不包含任何有效内容的列表,该怎么办?

可以像前面那样使用[42]*10或[0]*10,这样就生成了一个包含10个0的列表

None:有时会需要一个值来代表空值,意味着没有在里面放置任何元素,这时候就需要使用None。None是python的一个内建值,他的确切含义是“什么都没有”。因此,可以用来初始化列表。

示例如下:

用代码打印一个盒子:

输出如下:

2.2.5 成员资格

为了检查一个值是否在序列中,可以使用in运算符,用来检测某个条件是否为主,然后返回相应的值

在Unix系统中,我们可以使用in来检查用户是否有某些权限,还可以用来检测用户的帐号密码是否对应的上

示例脚本如下:

输出如下:

2.2.6 长度,最大值,最小值

内建函数len,max,min

2.3 列表

2.3.1 list函数

因为字符串不能像列表一样修改,索引有时根据字符串创建列表会很有效。list函数

2.3.2 列表的基本操作

1.改变列表:元素赋值
2.删除元素:del
3.分片赋值:

2.3.3 列表方法

1.追加:append

在列表末尾追加新的元素

2.统计:count

用来统计某个元素在列表中出现的次数

3.扩展:entend

在列表的末尾一次性追加另一个序列的多个值

这个操作看起来很想连接操作,两者最主要的区别在于:extend方法修改了被扩展的序列。而原始的连接则不然,他会返回一个全新的列表

4.索引:index

用于从列表中找出某个值第一个匹配项的索引位置

5.插入:insert

用于将对象插入到列表中

与extend方法类似,insert方法的操作也可以用分片赋值来实现

6.移除:pop

会移除列表中的一个元素(默认是最后一个),并且返回该元素的值

使用pop方法可以实现一种常见的数据结构--栈,即后进先出的移除数据。实现入栈和出栈

7.移除:remove

用于移除列表中某个值的第一个匹配项

可以看到:只有第一次出现的值被移除了,而不存在与列表中的值是不会被移除的

值得注意的是:remove是一个没有返回值的原位置改变方法,他修改了列表却没有返回值

8.反向存放:reverse

将列表中的元素反向存放

9.排序:sort

用于在原位置对列表进行排序,从而让其中的元素能按一定的顺序排列,而不是简单的返回一个已排序的列表副本。sort并不返回排序好的列表!

当用户需要一个排号序的副本,同时又要求保留列表不变时:

第一种方法:

第二种方法:

而使用另一种则不行:

10 高级排序

如果希望元素能够按照特定的发放时进行排序(而不是sort函数默认的方式,及根据python的默认顺序进行排序),那么就可以通过compare(x,y)的形式自定义比较函数。compare(x,y)会在x<y时返回负数,x>y时返回证书,如果x=y则返回0(根据你自己的定义)。定义好该函数之后,就可以提供给sort方法作为参数了。内建函数cmp提供了比较函数的默认实现方式:

cmp函数:

使用cmp参数排序:

sort方法还有另外两个可选的参数-key和reverse。如果要使用他们,就要通过名字来指定(即关键字参数)。参数key与cmp类似--必须提供一个在排序过程中使用的函数。然而,该函数并不是直接用来确定对象的大小,而是为每个元素创建一个键,然后所有元素根据键来排序。因此,如果要根据元素的长度进行排序,那么可以使用len作为键函数:

使用reverse:

cmp与key、reverse参数都可以作为sorted的函数,在多数情况下,为cmp或key提供自定义函数是非常有用的

2.4 元组:不可变序列

元组与列表一样,也是一种序列。唯一的不同是元组不能修改。创建元组的语法很简单,如果你用逗号分割了一些值,那么它就自动创建了元组。

元组大部分时候是通过圆括号括起来的,空元组可以用没有包含内容的两个圆括号来表示,而对于只有一个值的元组,必须加一个逗号,逗号是非常重要的,只添加圆括号是没用的,如下:

2.4.1 tuple函数

tuple函数功能与list函数基本上是一样的,以一个序列作为参考并把它转换为元组,如果参数就是元组,那么该参数就会被原样返回:

2.4.2 基本元组操作:

除了创建元组与访问元组元素之外,因为没有太多其他操作,可以参照其他类型的序列来实现:

2.4.3 元组的意义何在?

1.元组可以在映射(和集合的成员)中当作键使用--而列表不行

2.元组作为很多内建函数和方法的返回值存在,也就是说你必须对元组进行处理。只要不尝试修改元组,那么,“处理”

元组在绝大多数情况下就是把他们当作列表来进行操作

一般来说,列表可能更能满足对序列的所有需求

2.5 小结

函数 描述
cmp(x,y) 比较两个数的值
len(seq) 返回序列的长度
lsit(seq) 把序列转化为列表
max(args) 返回序列或参数集合中的最大值
min(args) 返回序列或参数集合中的最小值
reverse(seq) 对序列进行反向迭代
sorted(seq) 返回已排序的包含seq所有元素的列表
tuple(seq) 把序列转化为元组
时间: 2024-10-31 12:54:04

第二章:列表与元素的相关文章

python基础教程-第二章-列表和元组

本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构是序列(sequence).序列中的每个元素被分配一个序号--即元素的位置,也称为索引.第一个索引是0,第二个则是1,依次类推. 2.1 序列概览 python包含6中内建的序列,本章重点讨论最常用的两种:列表和元组.其他的内建序列类型字符串.Unicode字符串.buffer对象和xrange对象

Python基础教程(第二章 列表和元组)

本文内容全部出自<Python基础教程>第二版,在此分享自己的学习之路. ______欢迎转载:http://www.cnblogs.com/Marlowes/p/5293195.html______ Created on Xu Hoo 本章将引入一个新的概念:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在Python中,最基本的数据结构是序列(sequence),序列中的每个元素被分配一个序号——即

20190804-Python基础 第二章 列表和元组(2)

1. list函数,用于将字符串转换为列表 2. 基本的列表操作 修改列表 - 给元素赋值,使用索引表示法给特定的元素赋值,如x[1] = 2 删除元素 - 使用del语句即可 1 name1 = ['a','d','g','h'] 2 name2 = ['1','2','3','4'] 3 del name1[1] 4 print(name1) 5 print(len(name1)) 6 7 del name2[1:3] 8 print(name2) 9 print(len(name2)) 1

HTML5 第二章 列表和表格和媒体元素

列表: (1)什么是列表? 列表就是信息资源的一种展示形式. (2)无序列表: 语法: <ul> <li>第1项</li> <li>第2项</li> <li>第3项</li> </ul> (3)有序列表: 语法: <ol> <li>第1项</li> <li>第2项</li> <li>第3项</li> </ol> (4

第二章 列表、表格与媒体元素

一.无序列表 <ul>       <li>无序列表</li>       <li>有序列表</li>       <li>自定义列表</li>      </ul> 特性:1.没有顺序,每个<li>标签独占一行(块级元素)        2.默认每一个li标签前有一个实心小圆点        3.主要用于无序类型信息的展示,如导航栏等 二.有序列表 <ol>       <li&

python 第二章 列表,if循环

列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片,加,乘,检查成员. 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起

第二章 HTML5 页面元素及属性

—————目录 列表元素 结构元素 分组元素 页面交互元素 文本层次语义元素 全局属性 1. 列表元素 2. 结构元素 3. 分组元素 4.页面交互元素 5.文本层次语义元素 6. 全局属性 原文地址:https://www.cnblogs.com/QLEO/p/10052249.html

读书笔记--《Python基础教程第二版》--第2章列表和元组

第二章 列表和元组 2.1 序列的概览 序列:每个元素被分配一个序号  6种:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象         序列可以嵌套序列          python容器的概念:序列.字典.集合 2.2 通用序列的操作 索引.分片.加.乘.属于.长度,最大值.最小值.迭代 2.2.1 索引 >>> greeting='Hello' >>> greeting[0] 'H' >>> greeting[-

《python基础教程》第2章列表和元组 读书笔记

第二章 列表和元组 1.数据结构:通过某种方式将元素集合在一起. 2.python的6种内建序列:列表,元组,字符串,Unicode字符串,buffer对象,xrange对象. 3.迭代:依次对序列中的元素重复做某一操作. 4.序列都可以用索引来获取单个元素. 5.分片可以提取序列的一部分元素,第一个索引包含在分片内,第二个索引不包含在分片内.[;]可以复制整个序列.分片可以指定一个步长,如[0:10:2]步长为2. 6.序列可以直接用加号+相加. 7.序列用乘号*,就是原来的序列被重复x次.