第 4章 列表 列表数据类型

本文介绍了Python中列表和元组的数据类型,包括列表的定义、操作(如下标获取值、子列表)、方法以及元组的对比。通过实例演示了如何创建、访问列表元素和理解其层次结构。同时,提到了列表与元组的区别和常见错误处理。
摘要由CSDN通过智能技术生成

在你能够开始编写程序之前,还有一个主题需要理解,那就是列表数据类型及元组。列表和元组可以包含多个值,这样编写程序来处理大量数据就变得更容易。而且,由于列表本身又可以包含其他列表,所以可以用它们将数据安排成层次结构。
本章将探讨列表的基础知识。我也会讲授关于方法的内容。方法也是函数,它们与特定数据类型的值绑定。然后我会简单介绍类似列表的元组和字符串数据类型,以及它们与列表值的比较。下一章将介绍字典数据类型。

“列表”是一个值,它包含多个字构成的序列。术语“列表值”指的是列表本身(它作为一个值,可以保存在变量中,或传递给函数,像所有其他值一样),而不是指列表值之内的那些值。列表值看起来像这样:['cat', 'bat', 'rat', 'elephant']。就
像字符串值用引号来标记字符串的起止一样,列表用左方括号开始,右方括号结束,即[]。列表中的值也称为“表项”。表项用逗号分隔(就是说,它们是“逗号分隔的”)。例如,在交互式环境中输入以下代码:

>>>  [1,  2,  3]
[1,  2,  3]
>>>  ['cat',  'bat',  'rat',  'elephant']
['cat',  'bat',  'rat',  'elephant']
>>>  ['hello',  3.1415,  True,  None,  42]
['hello',  3.1415,  True,  None,  42]
➊  >>>  spam  =  ['cat',  'bat',  'rat',  'elephant']
>>>  spam
['cat',  'bat',  'rat',  'elephant']
spam 变量➊仍然只被赋予一个值:列表值。但列表值本身包含多个值。[]是一个空列表,不包含任何值,类似于空字符串’’。

用下标取得列表中的单个值
假定列表['cat', 'bat', 'rat', 'elephant']保存在名为 spam 的变量中。Python 代码 
spam[0]将求值为'cat',spam[1]将求值为'bat',依此类推。列表后面方括号内的整数被称为“下标”。列表中第一个值的下标是 0,第二个值的下标是 1,第三个值的下标是 
2,依此类推。图 4-1 展示了一个赋给 spam 的列表值,以及下标表达式的求值结果。


图 4-1    一个列表值保存在 spam 变量中,展示了每个下标指向哪个值
例如,在交互式环境中输入以下表达式。开始将列表赋给变量 spam。
>>>  spam  =  ['cat',  'bat',  'rat',  'elephant']
>>>  spam[0]
'cat'
>>>  spam[1]
'bat'
>>>  spam[2]
'rat'
>>>  spam[3]
'elephant'
>>>  ['cat',  'bat',  'rat',  'elephant'][3]
'elephant'
➊  >>>  'Hello  '  +  spam[0]
➋  'Hello  cat'
>>>  'The  '  +  spam[1]  +  '  ate  the  '  +  spam[0]  +  '.'
'The  bat  ate  the  cat.'

 

请注意,表达式'Hello ' + spam[0] ➊求值为'Hello ' + 'cat',因为 
spam[0]求值为字符串'cat'。这个表达式也因此求值为字符串'Hello cat'➋。
如果使用的下标超出了列表中值的个数,Python 将给出 IndexError 出错信息。
>>>  spam  =  ['cat',  'bat',  'rat',  'elephant']
>>>  spam[10000]
Traceback  (most  recent  call  last):
File  "<pyshell#9>",  line  1,  in  <module> spam[10000]
IndexError:  list  index  out  of  range


下标只能是整数,不能是浮点值。下面的例子将导致 TypeError 错误:
>>>  spam  =  ['cat',  'bat',  'rat',  'elephant']
>>>  spam[1]
'bat'
>>>  spam[1.0]
Traceback  (most  recent  call  last):
File  "<pyshell#13>",  line  1,  in  <module> spam[1.0]
TypeError:  list  indices  must  be  integers,  not  float
>>>  spam[int(1.0)]
'bat'
列表也可以包含其他列表值。这些列表的列表中的值,可以通过多重下标来访问,像这样:
>>>  spam  =  [['cat',  'bat'],  [10,  20,  30,  40,  50]]
>>>  spam[0]
['cat',  'bat']
>>>  spam[0][1]
'bat'
>>>  spam[1][4]
50


第一个下标表明使用哪个列表值,第二个下标表明该列表值中的值。例如, spam[0][1]打印出'bat',即第一个列表中的第二个值。如果只使用一个下标,程序将打印出该下标处的完整列表值。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大飞哥软件自习室

希望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值