Python基础教程 索引

2.2 通用的序列操作

有几种操作适用于所有序列,包括索引、 切片、 相加、 相乘和成员资格检查。另外, Python还提供了一些内置函数,可用于确定序列的长度以及找出序列中最大和最小的元素。

注意:有一个重要的操作这里不会介绍,它就是迭代(iteration)。对序列进行迭代意味着对其每个元素都执行特定的操作。有关迭代的详细信息,请参阅5.5节。

2.2.1 索引

序列中的所有元素都有编号——从0开始递增。你可像下面这样使用编号来访问各个元素:

>>> greeting = 'Hello'

>>> greeting[0]

'H'

注意 字符串就是由字符组成的序列。索引0指向第一个元素,这里为字母H。不同于其他一些语言, Python没有专门用于表示字符的类型,因此一个字符就是只包含一个元素的字符串。

这称为索引(indexing)。你可使用索引来获取元素。这种索引方式适用于所有序列。当你使用负数索引时, Python将从右(即从最后一个元素)开始往左数,因此-1是最后一个元素的位置。

>>> greeting[-1]

'o'

对于字符串字面量(以及其他的序列字面量),可直接对其执行索引操作,无需先将其赋给变量。这与先赋给变量再对变量执行索引操作的效果是一样的。

>>> 'Hello'[1]

'e'

如果函数调用返回一个序列,可直接对其执行索引操作。例如,如果你只想获取用户输入的年份的第4位,可像下面这样做:

>>> fourth = input('Year: ')[3]

Year: 2005

>>> fourth

'5'

代码清单2-1所示的示例程序要求你输入年、月(数1~12)、日(数1~31),再使用相应的月份名等将日期打印出来。代码清单2-1 索引操作示例

# 将以数指定年、月、日的日期打印出来

months = [

'January',

'February',

'March',

'April',

'May',

'June',

'July',

'August',

'September',

'October',

'November',

'December'

]

# 一个列表,其中包含数1~ 31对应的结尾

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 + endings[day_number-1]

print(month_name + ' ' + ordinal + ', ' + year)

这个程序的运行情况类似于下面这样:

Year: 1974

Month (1-12): 8

Day (1-31): 16

August 16th, 1974

最后一行为这个程序的输出。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180823G0BO0800?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券