Python进阶之路 4.2.1 通过索引操作序列元素
admin
2023-07-08 05:42:30
0次

4.2.1 通过索引操作序列元素

序列中的所有元素都是有编号的,就像读书一样,每个读书的学生都有学号。编号从0开始递增。序列中所有的元素都可以通过编号访问,这个编号被称为"索引"。

[例 4.4] 访问并输出序列names中的第1个和第3个元素。

names = ['小黑','小白','小红']
print(names[0])                 #运行结果:小黑
print(names[2])                 #运行结果:小红

输出结果:

小黑
小红

在上面的代码中,通过索引0和索引2,分别获取了names序列中的第1个和第3个元素值。Python语言中的字符串也可以通过索引获取特定的字符。

s = "Hello World"
print(s[0])             #运行结果:H
print(s[2])             #运行结果:l
print("Apple"[2])       #运行结果:p

输出结果:

H
l
p

上面的代码中,通过索引0和索引2,分别获取了字符串s中的第1个和第3个字符。然后通过索引2获取了字符串Apple的第3个字符。

通过input输入的字符串也可以通过索引引用其中的某个字符。

[例 4.6] 输入一个年份,如果只对年份的最后一个字符感兴趣,获取使用索引截取年份的最后一位数字。

fourth = input('请输入年份:')[3]
print(fourth)

输出结果:

请输入年份:2019
9

如果索引是0或正整数,那么Python语言会从序列左侧第1个元素开始取值,如果索引是负数,那么Python语言会从序列右侧第1个元素开始取值。序列最后一个元素的索引是-1,倒数第2个元素的索引是-2,以此类推。

[例 4.7] 通过索引获取names序列中的第1个元素值,以及通过负数索引获取names序列中倒数第1个和倒数第2个元素值。

names = ['小黑','小白','小红']
print(names[0])
print(names[-1])
print(names[-2])

输出结果:

小黑
小红
小白

当索引超过序列的索引范围时,会抛出异常。
[例 4.8] 使用索引4和-4引用names序列中的元素值,这两个索引都超出了names序列的索引范围,所以会抛出异常。不过当第1个异常抛出时,后面的语句都不会执行了。

names = ['小黑','小白','小红']
print(names[4])     #超出索引序列范围,将导致抛出异常
print(names[-4])    #超出索引序列范围,将导致抛出异常

在上面代码中,无论是索引4,还是索引-4,都超过了names序列索引的范围,所以抛出异常。
[例 4.9] 本例要求输入年、月、日,并将月转换为中文输出,如输入的月份是4,要求输出"4月"。

months = [
    '一月','二月','三月','四月','五月','六月',
    '七月','八月','九月','十月','十一月','十二月']

year = input("年:")                                  #输入年
month = input("月(1-12):")                           #输入月
day = input("日(1-31):")                            #输入日

monthNumber = int(month)                            #将输入的字符串格式转换为数值型

monthName = months[monthNumber - 1]                 #从序列中获取中文的月份

print(year + '年' + monthName + '' + day + '日')      #按指定格式输入年月日

输出结果:

年:2019
月(1-12):5
日(1-31):21
2019年五月21日

上面代码中,通过months变量名创建一个序列,通过year变量名保存用户输入的年份,通过month变量名保存用户输入的月份,通过day变量名保存用户输入的日。然后把保存在month变量中月份的值转换成数值型,并变量赋值给monthNumber。然后从months序列中获取月份。通过monthNumber变量中保存转换后的月份-1,就可以获得指定格式的字符串格式的月份,最后再按格式输出年月日。也许很多人不明白为什么monthNumber需要-1?举个例子,如果你输入的月份是10月份,然后通过int类型转换,把字符串类型转换成数值型。就可以把monthNumber - 1看作是10-1。10-1等于9,那序列第1个元素从0开始数,第9个元素就是10,以此类推。如果没有monthNumber - 1 那么你输入的月份永远比序列中的大1,而且当你输入12的时候,就会抛出异常。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...