关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

Python从菜鸟到高手(12):通过索引操作序列元素

发布时间:2022-09-11 23:37:27

1.定义序列

  本文将介绍一下在Python语言中如何定义序列。定义序列的语法与Java中的数组类似,使用一对中括号将序列中的元素值括起来。
下面的例子创建一个元素类型是字符串的序列,实现代码如下:

names = ["Bill", "Mary", "Jack"]

  同一个序列,不仅可以包含相同类型的值,还可以包含不同类型的值。
下面的例子在一个序列中放置不同类型的值,实现代码如下:

values = ["Bill", 30,12.5, True]

  在上面的代码中,values序列中包含了4个元素值,这4个元素值是不同的数据类型,分别是字符串("Bill")、整数(30)、浮点数(12.5)和布尔类型。

  序列的每一个元素还可以是另外一个序列,其实这么定义就相当于一个二维或多维数组。

  本例创建一个二维序列,每一个序列的元素值的类型是一个序列。

names = ["Bill", "Mike"]
numbers = [1,2,3,4,5,6]
salary=[3000.0,4000.0,5000.0]
flags = [True,False,True,True]
values = [names,numbers,salary,flags,['a','b']] #  创建二维序列
for value in values:                            #  输出二维序列
    print(value)

程序运行结果如下图所示。

Python从菜鸟到高手(12):通过索引操作序列元素

2.通过索引操作序列元素

  序列中的所有元素都是有编号的,编号从0开始递增。序列中的所有元素都可以通过编号访问,这个编号被称为索引。

下面的例子访问并输出序列names中的第1个和第3个元素。

names = ["Bill", "Mary", "Jack"]
print(names[0])         # 运行结果:Bill
print(names[2])         # 运行结果:Jack

  程序运行结果如下图所示。

Python从菜鸟到高手(12):通过索引操作序列元素

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

  本例通过索引获取并输出字符串s中的第1个和第4个字符,以及获取“Apple”的第3个字符。

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

程序运行结果如下图所示。

Python从菜鸟到高手(12):通过索引操作序列元素

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

  通过input输入的字符串也可以通过索引引用其中的某个字符。
  本例输入一个年份,如果只对年份的最后一个字符感兴趣,获取使用索引截取年份的最后一位数字。

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

程序运行结果如下图所示。

Python从菜鸟到高手(12):通过索引操作序列元素

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

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

names = ["Bill", "Mary", "Jack"]
print(names[0])             #  运行结果:Bill
print(names[-1])                #  运行结果:Jack
print(names[-2])                #  运行结果:Mary

程序运行结果如下图所示。

Python从菜鸟到高手(12):通过索引操作序列元素

  当索引超过序列的索引范围时,会抛出异常。

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

names = ["Bill", "Mary", "Jack"]
print(names[4])                     #  索引超出names序列的范围,将导致抛出异常
print(names[-4])                        #  索引超出names序列的范围,将导致抛出异常

程序运行结果如下图所示。

Python从菜鸟到高手(12):通过索引操作序列元素

  在上面的代码中,无论是索引4,还是索引-4,都超过了names序列索引的范围(-3 <= 索引范围 <= 2),所以会抛出异常。

  本例要求输入年、月、日,并将月转换为中文输出,如输入的月份是4,要求输出“四月”。

# 将中文月份放到序列中
months = [
    '一月',
    '二月',
    '三月',
    '四月',
    '五月',
    '六月',
    '七月',
    '八月',
    '九月',
    '十月',
    '十一月',
    '十二月'
    ]
year = input("年:")              # 输入年
month = input('月(1-12):')           # 输入月
day = input('日(1-31):')         # 输入日

monthNumber = int(month)            # 将字符串形式的月转换为数值形式的月

monthName = months[monthNumber - 1]                 # 从序列中获取中文的月份
print(year + "年 " + monthName + " " + day + "日")        # 按指定格式输入年月日

程序运行结果如下图所示。

Python从菜鸟到高手(12):通过索引操作序列元素

《Python从菜鸟到高手》已经出版,开始连载了,购买送视频课程

另外有需要云服务器可以了解下风纳云fengnayun.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场(仅限教程资讯栏目),内容著作权归作者所有。转载内容仅用于参考、学习,无商业用途。由于互联网信息复制性强我们难以联系到全部原著作人,若页面内容侵犯了您的权益,我们深感抱歉,还请联系邮箱service@fengnayun.com我们将在第一时间按照著作人要求处理内容。
/template/Home/Dawn/PC/Static

选择风纳云,也许是您成就一番大事业的开端

注册账号