Python的通用序列和可变序列操作

2021-03-15 00:35 阅读:2102
通用序列操作
  • x in s 如果x元素位于序列s中,返回True, 否则返回False
    • str, bytes, bytearray可用于子序列检测:'str' in 'strings' >>> True
  • x not in s 如果x元素不位于序列s中,返回True, 否则返回False
  • s + t 返回一个有s和t组成的新序列
  • s * n 或 n * s 返回由n个s组层的新序列
    • 如果n<0, 则把n当0处理,生成一个与s同类型的空序列
    • 注意,列表时引用数据类型,因此当把列表作为一个元素进行 * 运算时,所有的元素都是对同一个列表的引用,因此改变一个元素,整个序列元素都会变化:
>>>list = [[num1]] * n
>>>list[0].append(num2)
>>>list
[[num1, num2], [num1, num2] ...]
可用以下方法创建不同列表元素的二维列表:
list = [[num1] for i in range(n)]
  • s[i]
    • i∈[0, len()-1]时, 返回序列中下标为i的元素
    • i < 0时,返回len()+i下标的元素,亦即列表从右到左的元素次序
    • i > len()-1时,返回错误IndexError
  • s[i:j]
    • 0 ≤ i < j ≤ len(s) -1 时,返回包含序列s中下标为i到j-1的元素的新序列
    • i ≥ j 时,返回空序列
    • i <= 0 时,返回包含序列s中0到j-1下标元素的新序列
    • j >= len()-1时,返回包含序列s中下标i到尾部元素的新序列
    • i < 0 and j< 0, 用len() + index替换下标再计算
  • s[i:j:k] 返回包含序列s中下标为i到j-1、步长为k的元素的新序列
  • len(s) 返回s的元素个数
  • min(s) 返回s中的最小项
  • max(s) 返回s中的最大项
  • s.index(x[, i[, j]])
    • s.index(x) 返回x在序列s中首次出现的下标
    • s.index(x, i) 返回x在序列s中下标i之后首次出现的下标
    • s.index(x, i, j) 返回x在序列s中下标i之后j之前首次出现的下标
  • s.count(x) 返回x在序列中出现的次数

可变序列操作
  • 继承通用序列操作
  • s[i] = x 将序列s中下标为i的元素替换为x
  • s[i:j] = t 将序列s中下标为i到j-1的元素替换成可迭代对象t的元素
>>> s = [0, 1, 2, 3, 4, 5]
>>> s[3:5] = 'strings'
>>> s
[0, 1, 2, 's', 't', 'r', 'i', 'n', 'g', 's', 5]
>>>s[5:10] = [100, 110]
>>>s
[0, 1, 2, 's', 't', 100, 110, 5]

  • del s[i:j] 删除该切片,相当于s[i:j] = [] (注意,[]跟[' ']不一样)
  • s[i:j:k] = t 跟s[i:j]类似,不过注意步长k
  • del s[i:j:k] 删除列表中相应的元素
  • s.append(x) 将x追加到列表s末尾
  • s.clear() 从s中移除所有元素 s序列依然存在,只是为空
  • s.copy() 创建s的潜拷贝
  • s.extend(t) 或 s += t可迭代对象t的元素扩展序列s
  • s *= n 使用 s 的内容重复 n 次来对其进行更新。注意,跟通用序列一样,*运算法属于引用列表的方式
  • s.insert(i, x) 在序列s下标为i处插入元素x
  • s.pop(i) 删除序列s中下标为i的元素并返回该元素,如果i为空,则默认最后一个元素
  • s.remove(x) 移除序列s中第一次出现的x
  • s.reverse() 倒序

{{commentTotal}} 条评论

{{item.nickname}}
{{item.create_date}}
{{item.content}}
- 上拉或点击加载更多 -
- 加载中 -
- 没有更多了 -
- 本文链接 -