python 序列支持的所有操作

2018-10-12 14:29:32   最后更新: 2018-10-12 14:31:31   访问数量:123




上一篇日志中,我们介绍了 python 的序列类型:

  1. 字符串 -- "abc"
  2. 列表 -- ["a", "b", "c"]
  3. 元组 -- ("a", "b", "c")

以及他们支持的操作

python 序列与深浅拷贝

 

本文,我们来介绍一下 python 序列类型支持的函数

 

序列相关的工厂函数主要有

  • list -- 生成列表
  • tuple -- 生成元组
  • str -- 生成 string
  • chr -- 转换为 ascii 字符
  • ord -- 将 ascii 字符转换为数值

 

比较函数 -- min、max、len

>>> str = "abcdef" >>> list = [1, 2, 3, 4, 5, 6, 7, 8] >>> len(str) 6 >>> max(str) 'f' >>> min(str) 'a' >>> len(list) 8 >>> max(list) 8 >>> min(list) 1

 

 

排序 -- sorted

sorted 可以对所有可迭代的对象进行排序操作

sorted(iterable, key=None, reverse=False)

 

 

  • 示例
>>>example_list = [5, 0, 6, 1, 2, 7, 3, 4] >>> result_list = sorted(example_list, key=lambda x: x*-1) >>> print(result_list) [7, 6, 5, 4, 3, 2, 1, 0] >>>

 

 

逆序序列 -- reversed

#!/usr/bin/env python3 # 字符串 seqString = 'Runoob' print(list(reversed(seqString))) # 元组 seqTuple = ('R', 'u', 'n', 'o', 'o', 'b') print(list(reversed(seqTuple))) # range seqRange = range(5, 9) print(list(reversed(seqRange))) # 列表 seqList = [1, 2, 4, 3, 5] print(list(reversed(seqList)))

 

 

输出了:

['b', 'o', 'o', 'n', 'u', 'R'] ['b', 'o', 'o', 'n', 'u', 'R'] [8, 7, 6, 5] [5, 3, 4, 2, 1]

 

 

将序列转换为索引序列 -- enumerate

enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标

一般用在 for 循环当中

enumerate(sequence, [start=0])

 

  • sequence -- 一个序列、迭代器或其他支持迭代对象。
  • start -- 下标起始位置。

 

>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter'] >>>list(enumerate(seasons)) [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] >>>list(enumerate(seasons, start=1)) # 小标从 1 开始 [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')] >>> >>>seq = ['one', 'two', 'three'] >>>for i, element in enumerate(seq): ... print(i, seq[i]) ... 0 one 1 two 2 three >>>

 

 

序列的转置 -- zip

zip 操作非常类似于线性代数学科中的转置运算

他返回一个对象

>>>a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 返回一个对象 >>> zipped <zip object at 0x103abc288> >>> list(zipped) # list() 转换为列表 [(1, 4), (2, 5), (3, 6)] >>> list(zip(a,c)) # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> a1, a2 = zip(*zip(a,b)) # 与 zip 相反,*zip 可理解为解压,返回二维矩阵式 >>> list(a1) [1, 2, 3] >>> list(a2) [4, 5, 6] >>>

 

 

count 用来查询某个元素出现的次数

index 则用来查询某个元素首次出现的位置

>>> str = "132715812" >>> str.count("1") 3 >>> str.index("3") 1

 

 

工厂方法 -- list

创建列表可以直接赋值,也可以使用工厂方法创建新的列表对象

>>> str = "abcdef" >>> strlist = list(str) >>> strlist ['a', 'b', 'c', 'd', 'e', 'f']

 

 

尾部添加元素 -- append

>>> l=[1,2,3,4] >>> l.append(5) >>> l.append(['acb']) >>> l [1, 2, 3, 4, 5, ['acb']]

 

 

扩展列表 -- extend

扩展列表与列表的加法操作非常类似,但是加法操作是创建了新的列表对象,而 extend 操作是在原有列表基础上扩充新的空间

>>> l=range(5) >>> l [0, 1, 2, 3, 4] >>> l_add = [5,6,7,8] >>> l.extend(l_add) >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8] >>> >>> l+l_add [0, 1, 2, 3, 4, 5, 6, 7, 8, 5, 6, 7, 8] >>> l [0, 1, 2, 3, 4, 5, 6, 7, 8]

 

 

插入元素 -- insert

>>> l [1, 2, 1, 2, 2, 1] >>> l.insert(0,'first') >>> l ['first', 1, 2, 1, 2, 2, 1] >>> l.insert(-1,'end') >>> l ['first', 1, 2, 1, 2, 2, 'end', 1] >>> l.insert(3,'cc') >>> l ['first', 1, 2, 'cc', 1, 2, 2, 'end', 1] >>>

 

 

移除元素 -- pop

>>> l ['first', 1, 2, 'cc', 1, 2, 2, 'end', 1] >>> l.pop() >>> l ['first', 1, 2, 'cc', 1, 2, 2, 'end'] >>> l.pop(2) >>> l ['first', 1, 'cc', 1, 2, 2, 'end']

 

 

移除指定元素 -- remove

>>> l ['first', 1, 'cc', 1, 2, >>> l.remove(1) >>> l ['first', 'cc', 1, 2, 2]

 

 

逆置列表 -- reverse

>>> l ['first', 'cc', 1, 2, 2] >>> l.reverse() >>> l [2, 2, 1, 'cc', 'first']

 

 

排序 -- sort

>>> l [2, 2, 1, 'cc', 'first'] >>> l.sort() >>> l [1, 2, 2, 'cc', 'first'] >>>

 

 

python 字符串提供了非常大量的一系列字符串处理方法,可以实现非常方便的字符串处理

  • capitalize() -- 把字符串的第一个字符大写
  • center(width) -- 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
  • count(str, beg=0, end=len(string)) -- 返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
  • decode(encoding='UTF-8', errors='strict') -- 以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'
  • encode(encoding='UTF-8', errors='strict') -- 以 encoding 指定的编码格式编码 string,如果出错默认报一个 ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
  • endswith(obj, beg=0, end=len(string)) -- 检查字符串是否以 obj 结束,如果 beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False
  • expandtabs(tabsize=8) -- 把字符串 string 中的 tab 符号转为空格,默认的空格数 tabsize 是 8.
  • find(str, beg=0, end=len(string)) --  -- 检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
  • index(str, beg=0, end=len(string)) --  -- 跟 find()方法一样,只不过如果 str 不在 string 中会报一个异常.
  • isalnum() -- 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
  • isalpha() --  如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
  • isdecimal() -- 如果 string 只包含十进制数字则返回 True 否则返回 False.
  • isdigit() -- 如果 string 只包含数字则返回 True 否则返回 False.
  • islower() -- 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
  • isnumeric() -- 如果 string 中只包含数字字符,则返回 True,否则返回 False
  • isspace() -- 如果 string 中只包含空格,则返回 True,否则返回 False.
  • istitle() -- 如果 string 是标题化的(见 title())则返回 True,否则返回 False
  • isupper() -- 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
  • join(seq) -- 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
  • ljust(width) -- 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
  • lower() -- 转换 string 中所有大写字符为小写
  • lstrip() -- 截掉 string 左边的空格
  • partition(str) -- 有点像 find()和 split()的结合体,从 str 出现的第一个位置起, 把字符串 string 分成一个3元素的元组(string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
  • replace(str1, str2, num=string.count(str1)) -- 把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
  • rfind(str, beg=0,end=len(string)) -- 类似于 find()函数,不过是从右边开始查找
  • rindex(str, beg=0,end=len(string)) -- 类似于 index(),不过是从右边开始.
  • rjust(width) -- 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
  • rpartition(str) -- 类似于 partition()函数,不过是从右边开始查找.
  • rstrip() -- 删除 string 字符串末尾的空格.
  • split(str="", num=string.count(str)) -- 以 str 为分隔符切片 string,如果 num 有指定值,则仅分隔 num 个子字符串
  • splitlines(num=string.count('\n')) -- 按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行
  • startswith(obj, beg=0,end=len(string)) -- 检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果 beg 和 end 指定值,则在指定范围内
  • strip([obj]) -- 在 string 上执行 lstrip()和 rstrip()
  • swapcase() -- 翻转 string 中的大小写
  • title() --  -- 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
  • translate(str, del="") -- 根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 del 参数中
  • upper() -- 转换 string 中的小写字母为大写
  • zfill(width) -- 返回长度为 width 的字符串,原字符串 string 右对齐,前面填充 0

 






读书笔记      技术帖      python      list      string      function      函数      序列      str      tuple      method      方法     


京ICP备15018585号