Python基础教程(第3版)学习笔记03:列表和元组(一)——序列概述

本文是Python基础教程的学习笔记,主要介绍序列数据结构,包括列表和元组。列表是可变的,元组是不可变的。文章详细讲解了索引、切片、相加、相乘和成员资格检查等序列操作,通过实例演示了如何在Python中进行这些操作。
摘要由CSDN通过智能技术生成

一、数据结构的概念:
数据结构是以某种方式(如通过编号)组合起来的数据元素(如数字、字符乃至其他数据结构)集合
在Python中,最基本的数据结构为序列(sequence)。序列中的每个元素都有编号,即其位置或索引,其中第一个元素的索引为0,第二个元素的索引为1,依次类推。
在有些编程语言中,从1开始给序列中的元素编号,但从0开始指出相对于序列开头的偏移量。
Python内置了多种序列,其中最常用的是列表元组,还有一种重要的序列是字符串
列表和元组的主要不同在于:列表是可以修改的,而元组不可以
Python支持一种数据结构的基本概念叫容器(container)。两种主要的容器是序列(如列表和元组)和映射(如字典)。在序列中,每个元素都有编号(叫索引),而在映射中,每个元素有都名称(也叫键)

二、通用的序列操作:
通用的序列操作包括:索引、切片、相加、相乘成员资格检查

1、索引:
序列中的所有元素都有编号——从0开始递增,这称为索引
可使用索引来获取元素,这种索引方式适用于所有序列。如:

greeting="Hello"
greeting[0]

代码的输出结果是:“H”。
字符串是由字符组成的序列。索引0指向第一个元素,这里为字母“H”。
当使用负数索引时,Python将从右(即从最后一个元素)开始往左数,因此 -1是最后一个元素的位置。如:

greeting="Hello"
greeting[-1]

代码的输出结果是:“o”。

2、切片:
切片(slicing)适用于提取序列的一部分,可使用两个索引,并用冒号(:)分隔,所提取的部分是从第一个索引开始(包含) 到第二个索引结束(不包含)。如:

link="http://www.python.org"
link[12:18]

代码的输出结果为:“python”。
还可以用以下代码实现以上的结果:

link="http://www.python.org"
link[12:-4]

2.1、简写:
如果切片结束于序列的末尾(包含最后一个元素),则可省略第二个索引。如:

numbers=[1,2,3,4,5,6,7,8,9,10]
numvers[-3:]

输出结果为:[8,9,10]。
同样,如果切片开始于序列的开头,可省略第一个索引。如:

numbers=[1,2,3,4,5,6,7,8,9,10]
numvers[:3]

输出结果为:[1,2,3]。

2.2、步长:
在执行切片操作时,显式或隐式的指定起点和终点,通常省略了另一个参数:步长。因为切片的默认步长为1,这意味着从序列的一个元素移到下一个元素。
显式指定步长的方法:

numbers=[1,2,3,4,5,6,7,8,9,10]
numvers[0:10:1]

输出结果为:[1,2,3,4,5,6,7,8,9,10]。
在这里,索引10指的是第11个元素,它并不存在,但确实是到达最后一个元素后再前进一步所处的位置。

显式指定步长时,还可以用简写的方法:

numbers=[1,2,3,4,5,6,7,8,9,10]
numvers[::4]

输出结果为:[1,5,9]。

步长不能为0,否则无法向前移动,但可以为负数,即从右向左提取元素,如:

numbers=[1,2,3,4,5,6,7,8,9,10]
numvers[10:0:-2]

输出结果为:[10,8,6,4,2]。

3、相加:
可使用 加法运算符(+) 来拼接序列。如:

[1,2,3]+[4,5,6]

输出结果为:[1,2,3,4,5,6]。

"Hello,"+"world!"

输出结果为:“Hello,wrold!”。
但是,不能用加法运算符来拼接不同类型的序列。如:[1,2,3]+"world!",这样将会出错

4、乘法:
将序列与数x相乘,将重复这个序列x次来创建一个新的序列。如:

[12]*5

输出结果为:[12,12,12,12,12]。

"python "*5

输出结果为:"python python python python python "。

空列表 是使用不包含任何内容的两个方括号([ ])来表示。
在有些情况下,可能要创建一个指定长度但又不包含任何内容的列表,这时可以使用 None 来表示。在Python中,None表示什么都没有的意思。例如要创建一个长度初始化为10的空列表,可用如下方法:

sequence=[None]*10
sequence

代码的输出结果为:[None,None,None,None,None,None,None,None,None]。

5、成员资格:
要检查特定的值是否包含在序列中,可使用运算符 in 。它检查是否满足指定的条件,并返回相应的值:满足时返回True,不满足时返回Flase。这样的运算符称为 布尔运算符,而返回的值称为 布尔值(True或False)

book="python"
"y" in book

代码的返回结果为:True。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值