004 系列:元组,列表和字符串

  Python中内置的系列数据包括:元组(tuple),列表(list),字符串(str)和字节数据(bytes 和bytearray)

 

[A] 系列的基本操作

  测试系列长度

    >>>len(obj) # 返回系列obj的长度

    >>>max(s) # 返回s系列中最大元素

    >>>min(s) # 返回s系列中最小元素

    >>>sum(s) # 返回s系列中元素之和

 

  系列的访问

    >>>s[i] # 访问系列s在i处元素,此处i必须为数值并且为整数

    注:此处序列序号为0,1,2,3……n-1 或者 -n…….-3,-2,-1

  系列切片

    通过切片操作,可以截取系列一部分,其具体操作为:

      >>>s[i : j] 或 s[i : k :j] #返回s系列的i到j之间的元素(不包括j),步长为k

    用函数slice切片,具体操作为:

      >>>slice(start, stop, step) # 参数分别表示开始下标,结束下标(不包括)和步长

  系列的连接和重复操作

    序列连接和重复的基本形式有两种:

      用加法进行连接:

        >>>s1+s2 # 将系列s1和系列s2相连

      用乘法进行重复:

        >>>s*n 或 n*s # 将系列s重复n次

  系列的成员操作

      判断元素x是否在系列s之中,

        >>>x in s # 返回逻辑值,若为True则元素x在系列s之中

        >>>x not in s # 返回逻辑值,若为True则元素x不在系列s之中

        >>>s.count(x,[m,n]) # 返回元素x在指定范围[m,n)中出现的次数

        >>>s.index(x,[m,n]) # 返回元素x在指定范围[m,n)中首次出现的下标(原系列之中所在的下标)

  系列的比较运算

    两个系列支持比较运算(<, <=, ==, !=, >=,>),系列将按顺序对元素进行比较。

  内置all()和any()

    利用内置函数all()和any(),可以判断系列的元素是否全部或部分为True。其具体操作为:

      >>>all(s) # 返回逻辑值,若系列s中所有值均为True,则返回True。

      >>>any() # 返回逻辑值,若系列s中只要有值为True,则返回True。

  系列拆封

    【a】通过赋值语句可以将系列值进行拆封,将系列中的值赋给多个变量:

      >>>变量1,变量2,。。。,= 系列或可迭代对象

      注:左边变量个数必须等于右边系列中元素的个数

    【b】变量个数和系列长度未知时,可以使用*元组变量进行拆封,但*元组变量只能出现一次:

      >>>first, *middle, last = range(10) # 返回的变量middle为列表,包含八个元素

    【c】如果只需要部分数据,则可以用_占位:

      >>> _, *middle, _ = range(10) # 返回的变量middle为列表,包含八个元素。

 

[B] 元组tuple

  元组为不可变对象,不可进行修改,添加,删除其中元素。仅可对其进行访问,其创建格式有四种:

    >>>a = 1, 2,’ds’, 4

    >>> a = (1, 2,’ds’, 4)

    >>>a = tuple()或a = () # 创建空元组

    >>>a = tuple(iterable) # 用迭代器生成元组

  元组的基本操作包括系列的所有基本操作,即5.1节中的所有内容。

 

[C] 列表list

    列表(list)是一组包含有序元素的数据结构。列表是可变的系列结构,可以对列表进行访问,修改,删除和添加元素。Python中没有数组,list结构就替代了数组。

  列表定义

 

    列表的定义有三种方法:

 

      >>>s = [1,5,4,4,’ds’,…] # 直接赋值,其元素可以为任何类型的格式。

      >>>s = list 或 [] # 赋值空列表

      >>>s = list(iterable) # 利用迭代器生成列表

 

  列表基本操作

 

    改变列表中元素的值:

 

      >>>s[5] = 14 # 将列表s下标为5(即第6个元素)的元素改为14。

      >>>s[2:6] = [10,20,30,40,50] # 系列赋值

 

    删除列表元素:

 

      >>>del s[12] # 将列表s中下标为12的元素删除

      >>>del s[2:6] # 将列表s中下标从2到6的元素都删除

      >>>del s # 删除列表变量s

 

  列表对象的方法

 

    >>>s.append(x) # 将对象x添加到列表s 的尾部,此时x可以为任何对象,但是会被当做一个元素附在s尾部

    >>>s.clear()  或 del s[:] 或 s = [] # 删除列表s中的所有元素

    >>>s.extend(t) # 将系列t添加到s尾部,此时系列t会被先换成list格式(可能包含很多列表格式的元素),再添加到系列s尾部

    >>>s.insert(i,x) # 在列表s的下标为i的位置插入对象x, 此时x可以为任何对象,但是会被当做一个元素插入到s中

    >>>a = s.pop(i) # 移除列表s中下标为i的元素,并将这个被移除的元素返回给a。若i省略,则移除列表最后一个元素

    >>>s.remove(x) # 移除列表s中第一次出现的元素x,若找不到元素x,则报错

    >>>s.reverse() # 列表反转,即[1,2,3]——>[3,2,1]

    >>>s.sort() # 列表排序,从小到大

 

 

  列表解析表达式

 

    列表解析表达式可以高效的处理一个迭代对象,并生成一个结果列表。其表达式有两种:

 

      [expression  for i in系列1  for j in 系列2 ……]

 

        # 迭代所有内容并返回一个列表

 

      [expression  for i in系列1  for j in系列2 ……if  condition_expression]

 

        # 按条件迭代所有内容并返回一个列表

 

  列表作为队列和栈

 

    None

 

posted @ 2022-06-02 11:11  CarreyB  阅读(29)  评论(0编辑  收藏  举报