• python数据类型-序列


    注:本文档主要是学习《Python核心编程(第二版)》时做的资料整理。

    1.序列

    序列的成员是有序排列的,并且可以通过下标偏移量访问到它的一个或者几个成员,包括字符串(普通字符串和Unicode字符串)、列表和元组类型。下标偏移量从0开始到总元素-1结束。

    1.1操作符

    1.1.1成员关系操作符

    成员关系操作符:用来判断一个元素是否属于一个序列。in/not in操作符返回值一般就是True/False,语法为: 对象 [not] in 序列

    1 >>> list = [1, 2, 3]
    2 >>> 1 in list 
    3 True
    4 >>> 4 in list 
    5 False

    1.1.2连接操作符

    允许把一个序列和另一个相同类型的序列做连接sequence1 + sequence2,这种方法不是最高效的;

    1 >>> str1 = 'hello'
    2 >>> str2 = 'world'
    3 >>> str1 + str2
    4 'helloworld'

    对于字符串,可将所有的子字符串放在一个列表或可迭代对象中,然后调用join方法来把所有的内容连接在一起以节约内存;对列表来说,可用列表的extend()方法来把两个或者多个列表对象合并。

    1 >>> str3 = ''
    2 >>> str3.join([str1, str2])
    3 'helloworld'

    1.1.3重读操作符(*)

    sequence * copies_int,copies_int必须是一个整型,不能是长整型。该操作符返回一个新的包含多份原对象拷贝的对象。

    1 >>> s1 = 'ha'
    2 >>> s1*3
    3 'hahaha'

    1.14切片操作符([], [:], [::])

    访问某一个数据元素的语法:sequence[index]。范围从0到偏移值最大值(比序列长度少一),用len()函数可以得到序列长度,实际的范围是0<= index <= len(sequence)-1。使用负数索引,范围是-1到序列的负长度-len(sequence),-len(sequence) <= index <= -1

    1 >>> print ('Faye', 'Leanna', 'Daylen')[1]
    2 Leanna

    访问多个元素:sequence[starting_index: ending_index],可得到从起始索引到结束索引之间的一个"片"元素。

    1.15用步长索引来进行扩展的切片操作

     1 sequence[starting_index: ending_index, step]
     2 >>> s = 'abcdefghijk'
     3 >>> s[::-1]
     4 'kjihgfedcba'
     5 >>> s[::2]
     6 'acegik'
     7 >>>
     8 >>> a = 'abcde'
     9 >>> for i in [None] + range(-1, -len(a), -1):
    10 ... print a[:i]
    11 ...
    12 abcde
    13 abcd
    14 abc
    15 ab
    16 a

    序列操作符

    作用

    seq[ind]

    获取下标为ind的元素

    seq[ind1:ind2]

    获取下标从ind1到ind2间的元素集合

    seq*expr

    序列重复expr次

    seq1 + seq2

    连接序列seq1和seq2

    obj in seq

    判断obj元素是否包含在seq中

    obj not in seq

    判断obj元素是否不包含在seq中

    1.2序列内建函数

    1.2.1类型转换函数

    内建函数list()、str()和tuple()被用作在各种类型之间转换,这些函数都是工厂函数,将对象作为参数,并将其内容(浅拷贝)到生成的对象中。

    一旦一个对象被建立,就不能改变其身份或类型,把一个列表对象传给list()函数,会创建一个这个对象的浅拷贝,然后将其插入新的列表中。所谓浅拷贝就是只拷贝这个对象的索引,而不是创建了一个对象。

    函数

    含义

    list(iter)

    把可迭代对象转换为列表

    str(obj)

    把obj对象转换为字符串(对象的字符串表示法)

    unicode(obj)

    把对象转换为Unicode字符串(使用默认编码)

    basestring()

    抽象工厂函数,其作用仅仅是为str和Unicode函数提供父类,所以不能被实例化,也不能被调用

    tuple(item)

    把一个可迭代对象转换为一个元组对象

    1 >>> obj = list(x for x in range(10))
    2 >>> obj
    3 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    4 >>> str(obj)
    5 '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]'
    6 >>> tuple(obj)
    7 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    8 >>> unicode(obj)
    9 u'[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]'

    1.2.2可操作函数

    序列类型可用的内建函数如下:

    函数名

    功能

    enumerate(iter)

    接受一个可迭代对象作为参数,返回一个enumerate对象(同时也是一个迭代器),该对象生成由iter每个元素的index值和item值组成的数组

    len(seq)

    返回seq的长度

    max(iter, key=None) or max(arg0, arg1,…, key=None)

    返回iter或(arg0, arg1,…)中的最大值,如果指定了key,这个key必须是一个可以传给sort()方法的,用于比较的回调函数

    min(iter, key=None) or min(arg0, arg1,…, key=None)

    返回iter或(arg0, arg1,…)中的最小值,如果指定了key,这个key必须是一个可以传给sort()方法的,用于比较的回调函数

    sorted(iter, func=None, key=None, reverse=False)

    接受一个可迭代对象,返回一个有序的列表,可选参数func、key和reverse的含义跟list.sort()内建函数的参数含义一样

    sum(seq, init=0)

    返回seq和可选参数init的总和,其效果等同于reduce(operator,add,seq,init)

    zip(it0, it1, … , itN)

    返回一个列表,其第一个元素是it0、it1…这些元素的第一个元素组成的一个元组,第二个。。。依此类推

    后面详细介绍字符串、列表和元组时再详细介绍这些函数。

  • 相关阅读:
    [DB2]删除大数据量数据及57011错误处理
    [DB2]DB2日常维护——REORG TABLE命令优化数据库性能
    [转]解读DIV CSS网页布局中CSS无效十个原因
    [DB2]DB2 sqlstate 57016 原因码 "7"错误
    [翻译]15个最常见的WCF问题
    [DB2]DB2数据库备份与恢复和导出表结构与导入导出表数据
    [转]网站(bs系统)怎样实现即时消息思路总结
    【摘抄】DB2字符集问题
    [转]jQuery必知必熟基础知识
    sql 2005/2008 订阅与发布的几个概念
  • 原文地址:https://www.cnblogs.com/mrlayfolk/p/11973688.html
Copyright © 2020-2023  润新知