最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python序列(列表list和元组tuple)用法完全攻略

    正文概述    2020-04-15   271

    Python序列(列表list和元组tuple)用法完全攻略

    所谓序列,指的是一种包含多项数据的数据结构,序列包含的多个数据项(也叫成员)按顺序排列,可通过索引来访问成员。

    Python的常见序列类型包括字符串、列表和元组。前一章介绍过的字符串,其实就是一种常见的序列,通过索引访问字符串内的字符程序就是序列的示范程序。

    在具体的编程过程中,如果只是固定地保存多个数据项,则不需要修改它们,此时就应该使用元组;反之,就应该使用列表。此外,在某些时候,程序需要使用不可变的对象,比如 Python 要求字典的 key 必须是不可变的,此时程序就只能使用元组。

    创建列表和元组

    创建列表和元组的语法也有点相似,区别只是创建列表使用方括号,创建元组使用圆括号,并在括号中列出元组的元素,元素之间以英文逗号隔开。

    创建列表的语法格式如下:

    [ele1,ele2,ele3,...]

    创建元组的语法格式如下:

    (ele1,ele2,ele3,...)

    下面代码示范了在程序中定义列表和元组:

    a_tuple = ('crazyit', 20, 5.6, 'fkit', -17)
    print(a_tuple)
    # 访问第1个元素
    print(a_tuple[0]) # crazyit
    # 访问第2个元素
    print(a_tuple[1]) # 20
    # 访问倒数第1个元素
    print(a_tuple[-1]) # -17
    # 访问倒数第2个元素
    print(a_tuple[-2]) # -fkit

    列表和元组切片

    与前面介绍的字符串操作类似的是,列表和元组同样也可使用索引获取中间一段,这种用法被称为 slice(分片或切片)。slice 的完整语法格式如下:

    [start : end : step]

    上面语法中 start、end 两个索引值都可使用正数或负数,其中负数表示从倒数开始。该语法表示从 start 索引的元素开始(包含),到 end 索引的元素结束(不包含)的所有元素,这和所有编程语言的约定类似。

    step 表示步长,因此 step 使用负数没有意义。

    下面代码示范了使用 start、end 获取元组中间一段的用法:

    a_tuple = ('crazyit', 20, 5.6, 'fkit', -17)
    # 访问从第2个到倒数第4个(不包含)所有元素
    print(a_tuple[1: 3]) # (20, 5.6)
    # 访问从倒数第3个到倒数第1个(不包含)所有元素
    print(a_tuple[-3: -1]) # (5.6, 'fkit')
    # 访问从第2个到倒数第2个(不包含)所有元素
    print(a_tuple[1: -2]) # (20, 5.6)
    # 访问从倒数第3个到第5个(不包含)所有元素
    print(a_tuple[-3: 4]) # (5.6, 'fkit')

    如果指定 step 参数,则可间隔 step 个元素再取元素。例如如下代码:

    b_tuple = (1, 2, 3, 4, 5, 6, 7, 8, 9)
    # 访问从第3个到第9个(不包含)、间隔为2的所有元素
    print(b_tuple[2: 8: 2]) # (3, 5, 7)
    # 访问从第3个到第9个(不包含)、间隔为3的所有元素
    print(b_tuple[2: 8: 3]) # (3, 6)
    # 访问从第3个到倒数第2个(不包含)、间隔为3的所有元素
    print(b_tuple[2: -2: 2]) # (3, 5, 7)

    加法

    列表和元组支持加法运算,加法的和就是两个列表或元组所包含的元素的总和。

    需要指出的是,列表只能和列表相加;元组只能和元组相加;元组不能直接和列表相加。

    如下代码示范了元组和列表的加法运算:

    a_tuple = ('crazyit' , 20, -1.2)
    b_tuple = (127, 'crazyit', 'fkit', 3.33)
    # 计算元组相加
    sum_tuple = a_tuple + b_tuple
    print(sum_tuple) # ('crazyit', 20, -1.2, 127, 'crazyit', 'fkit', 3.33)
    print(a_tuple) # a_tuple并没有改变
    print(b_tuple) # b_tuple并没有改变
    # 两个元组相加
    print(a_tuple + (-20 , -30)) # ('crazyit', 20, -1.2, -20, -30)
    # 下面代码报错:元组和列表不能直接相加
    #print(a_tuple + [-20 , -30])
    a_list = [20, 30, 50, 100]
    b_list = ['a', 'b', 'c']
    # 计算列表相加
    sum_list = a_list + b_list
    print(sum_list) # [20, 30, 50, 100, 'a', 'b', 'c']
    print(a_list + ['fkit']) # [20, 30, 50, 100, 'fkit']

    乘法

    列表和元组可以和整数执行乘法运算,列表和元组乘法的意义就是把它们包含的元素重复 N 次(N 就是被乘的倍数)。

    如下代码示范了列表和元组的乘法:

    a_tuple = ('crazyit' , 20)
    # 执行乘法
    mul_tuple = a_tuple * 3
    print(mul_tuple) # ('crazyit', 20, 'crazyit', 20, 'crazyit', 20)
    a_list = [30, 'Python', 2]
    mul_list = a_list * 3
    print(mul_list) # [30, 'Python', 2, 30, 'Python', 2, 30, 'Python', 2]

    当然,也可以对列表、元组同时进行加法、乘法运算。例如,把用户输入的日期翻译成英文表示形式,即添加英文的“第”后缀。对于 1、2、3 来说,英文的“第”后缀分别用 st、nd、rd 代表,其他则使用 th 代表。

    为此,可使用如下代码来完成该转换:

    # 同时对元组使用加法、乘法
    order_endings = ('st', 'nd', 'rd')\
        + ('th',) * 17 + ('st', 'nd', 'rd')\
        + ('th',) * 7 + ('st',)
    # 将会看到st、nd、rd、17个th、st、nd、rd、7个th、st
    print(order_endings)
    day = input("输入日期(1-31):")
    # 将字符串转成整数
    day_int = int(day)
    print(day + order_endings[day_int - 1])

    该程序中,同时对 ('th',) 元组使用了乘法,再将乘法得到的结果使用加法连接起来,最终得到一个元组,该元组共有 31 个元素。

    长度、最大值和最小值

    Python 提供了内置的 ten()、max()、min() 全局函数来获取元组或列表的长度、最大值和最小值。

    由于 max()、min() 要对元组、列表中的元素比较大小,因此程序要求传给 max()、min() 函数的元组、列表的元素必须是相同类型且可以比较大小。例如如下代码:

    # 元素都是数值的元组
    a_tuple = (20, 10, -2, 15.2, 102, 50)
    # 计算最大值
    print(max(a_tuple)) # 102
    # 计算最小值
    print(min(a_tuple)) # -2
    # 计算长度
    print(len(a_tuple)) # 6
    # 元素都是字符串的列表
    b_list = ['crazyit', 'fkit', 'Python', 'Kotlin']
    # 计算最大值(依次比较每个字符的ASCII码值,先比较第一个字符,若相同,继续比较第二个字符,以此类推)
    print(max(b_list)) # fkit(26个小写字母的ASCII码为97~122)
    # 计算最小值
    print(min(b_list)) # Kotlin (26个大写字母的ASCII码为65~90)
    # 计算长度
    print(len(b_list)) # 4

    在上面代码中,首先使用 3 个函数对元素都是数值的元组进行处理,可以看到程序获取元组的最大值、最小值等。程序后半部分使用 3 个函数对元素都是宇符串的列表进行处理,也可以看到程序获取列表的最大值、最小值等,这说明 Python 的字符串也是可比较大小的,即 Python 依次按字符串中每个字符对应的编码来比较字符串的大小。


    起源地下载网 » Python序列(列表list和元组tuple)用法完全攻略

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元