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

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)

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

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

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

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

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

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

  在上面的代码中,通过索引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

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

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

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

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

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

  如果索引是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

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

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

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

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

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

  在上面的代码中,无论是索引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从菜鸟到高手》已经出版,开始连载了,购买送视频课程

原文地址:http://blog.51cto.com/androidguy/2172751

时间: 2024-10-09 23:01:14

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

Python从菜鸟到高手(14):序列的加法和乘法

1 序列的加法   序列也可以相加,但要注意,这里的相加,并不是相对应的序列元素值相加,而是序列首尾相接.由于字符串属于字符序列,所以字符串相加也可以看做是序列相加.但一个字符串不能和一个序列相加,否则会抛出异常.   本例演示了两个序列之间的加法,以及序列和字符串之间相加后会抛出异常. print([1,2,3] + [6,7,8]) # 运行结果:[1,2,3,6,7,8] print("Hello" + " world") # 运行结果:Hello world

Python从菜鸟到高手(4):导入Python模块

在Python代码中导入模块需要使用import语句,语法结构如下: import module_name ??引用模块中函数的语法如下: module_name.function_name ??如果在Python程序中大量使用模块中的某些函数,那么每次在调用函数时都要加上"模块名"显得有些麻烦,所以在这种情况下,可以使用from-import-语句将模块中的函数直接暴露出来.该语句的语法结构如下: from module_name import function_name ??如果要

Python从菜鸟到高手(5):数字

1 基础知识 ??Python语言与其他编程语言一样,也支持四则运算(加.减.乘.除),以及圆括号运算符.在Python语言中,数字分为整数和浮点数.整数就是无小数部分的数,浮点数就是有小数部分的数.例如,下面的代码是标准的四则运算表达式. 2 + 4 4 * 5 + 20 5.3 / 7 (30 + 2) * 12 ??如果要计算两个数的除法,不管分子和分母是整数还是浮点数,使用除法运算符(/)的计算结果都是浮点数.例如1/2的计算结果是0.5,2/2的计算结果是1.0.要想让Python解释

Python从菜鸟到高手(6):获取用户输入、函数与注释

1. 获取用户输入   要编写一个有实际价值的程序,就需要与用户交互.当然,与用户交互有很多方法,例如,GUI(图形用户接口)就是一种非常好的与用户交互的方式,不过我们先不讨论GUI的交互方式,本节会采用一种原始,但很有效的方式与用户交互,这就是命令行交互方式,也就是说,用户通过命令行方式输入数据,程序会读取这些数据,并做进一步的处理.   从命令行接收用户的输入数据,需要使用input函数.input函数接收一个字符串类型的参数,用于作为输入的提示.input函数的返回值就是用户在命令行中录入

Python从菜鸟到高手(11):列表的基础操作

  列表可以使用所有适用于序列的标准操作,例如索引.分片.连接和乘法.但列表还有一些属于自己的操作,如修改列表本身的操作,这些操作包括元素赋值.元素删除.分片赋值以及下一节要将的列表方法. 1. 列表元素赋值   如果要修改列表中的某一个元素,可以像使用数组一样对列表中的特定元素赋值,也就是使用一对中括号指定元素在列表中的索引,然后使用赋值运算符(=)进行赋值.   本例修改了列表s中的前两个元素值. s = ["Bill", "Mike", "John&

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

好消息,<Python从菜鸟到高手>已经出版!!! ??JetBrains官方推荐图书!JetBrains官大中华区市场部经理赵磊作序!送2400分钟同步视频课程!500个案例,400道Python练习题,电子书,10万行源代码,6个实战项目! 本书完整目录 购买地址: 当当 京东 ??在2018-10-15之前在以上地址购买本书,并5分好评以及20字以上评论.除了赠送40小时Python同步视频课程外,还赠送李宁老师任意200元以内的课程或套餐,如果课程或套餐超过200元,直接不差价即可.

Python从菜鸟到高手(2):清空Python控制台

执行python命令会进入Python控制台.在Python控制台中可以用交互的方式执行Python语句.也就是执行一行Python语句,会立刻返回执行结果. ??当Python控制台输入过多的Python语句时,有时需要将这些已经输入的语句和执行结果清空,并重新开始输入Python语句.例如,下图就是一个输入了多条Python语句,并输出相应结果的Python控制台. . ??当然,如果不想看到这些Python语句和输出结果,可以一直按"回车" 键,直到Python控制台中所有的内容

Python从菜鸟到高手(7):字符串

1. 单引号字符串和转义符   字符串与数字一样,都是值,可以直接使用,在Python控制台中直接输入字符串,如"Hello World",会按原样输出该字符串,只不过用单引号括了起来. >>> "Hello World" 'Hello World'   那么用双引号和单引号括起来的字符串有什么区别呢?其实没有任何区别.只不过在输出单引号或双引号时方便而已.例如,在Python控制台输入'Let's go!',会抛出如下的错误. >>&

Python从菜鸟到高手(8):print函数、赋值与代码块

1.神奇的print函数 ??print函数相信读者一定对它不陌生,因为在前面的章节,几乎每个例子都使用了print函数,这个函数的功能就是在控制台输出文本.不过print在输出文本时还可以进行一些设置,以及输出多参数字符串. ??如果为print函数传入多个参数值,那么print函数会将所有的参数值首尾相接输出. # 输出结果:a b c d e print("a","b","c","d","e"); ?