列表和元组
概述:列表和元组是Python的内置序列,其主要不同在于:列表是可以修改的,而元组不可以。
Python支持一种数据结构的基本概念,名为容器。容器基本上就是可包含其他对象的对象。
主要的容器是序列(如列表和元组)和映射(如字典)。
2.1 通用的序列操作
几种操作适用于所有序列,包括索引、切片、相加、相乘、和成员资格检查。
Python提供了一些内置函数,可以用于确定序列的长度以及找出序列中最大和最小元素。
2.1.1 索引
序列中的所有元素都有编号——从0开始递增。这称为索引(indexing),可以使用索引来获取元素。
索引操作示例:
# 将以指定年月日的日期打印出来
months = ['January','February','March','April','May','June',
'July','August','September','October','November','December']
# 一个列表,其中包含数1~31对应的结尾
day_endings = ['st','nd','rd'] + 17 * ['th'] + ['st','nd','rd'] + 7 * ['th'] + ['st']
year = input('Year : ')
month = input('Month(1-12) : ')
day = input('Day(1-31) : ')
month_number = int(month)
day_number = int(day)
# 别忘了讲表示月和日的数减1,这样才能得到正确的索引
month_name = months[month_number - 1]
ordinal = day + day_endings[day_number - 1]
print(month_name + ' ' + ordinal + ',' +year)
代码运行结果 :
2.1.2 切片
除使用索引来访问单个元素外,还可以使用切片(slicing)来访问特定范围内的元素。为此,可以使用两个索引,并用 冒号分隔。
>>> numbers = [1,2,3,4,5,6,7,8,9,10]
>>> numbers[3:6]
[4,5,6]
>>> numbers[0:1]
[1]
# 1.绝妙的简写
>>> numbers[7:10]
[8,9,10]
>>> numbers[-3:-1]
[8,9]
>>> numbers[-3:]
[8,9,10]
>>> numbers[:3]
[1,2,3]
>>> numbers[:]
[1,2,3,4,5,6,7,8,9,10]