Python 数据类型(1)序列


你知道么, 大部分的列表方法都是修改参数并返回None的,而字符串则刚好相反,字符串方法新建一个字符串,并保留原始的字符串不动。

0. 概述

内涵

在这里插入图片描述
详细地说,Python 标准库用 C 实现了丰富的序列(Sequence)类型:

  • 容器序列:比如 list、tuple 这些序列能存放不同类型的数据
  • 扁平序列:比如 string、byte 这类序列只能容纳一种类型的数据
  • 可变序列:比如 list、collections.deque
  • 不可变序列:比如 tuple、string

下图展示了可变序列 MutableSequence 和不可变序列 Sequence 的差异和继承关系,理解上述的四种序列类的特性后再处理 Python 风格的序列类型,会更加得心应手。
在这里插入图片描述

序列操作

除了可以使用标准数据类型的操作,序列类型操作:
在这里插入图片描述

内置函数

在这里插入图片描述

1. 列表

在这里插入图片描述

列表元素的几种删除方式

列表 删除操作——pop del remove 的区别?

  • remove 删除第一个目标值
Docstring:
L.remove(value) -> None -- remove first occurrence of value.
Raises ValueError if the value is not present.
Type:      builtin_function_or_method

l = [1, 2, 3, 5, 3]
l.remove(3)
print(l)

[1, 2, 5, 3]
  • pop 按照索引删除目标并返回这个被删除的目标的值
Docstring:
L.pop([index]) -> item -- remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
Type:      builtin_function_or_method
l = [1, 2, 3, 5, 3]
l.pop(2)

3
print(l)

[1, 2, 5, 3]
  • del python 32 个关键字之一,用于删除
l = [1, 2, 3, 5, 3]
del l[2]
print('l', l) 

除了删除列表的元素,del 还可以删除其它形式的变量(变量引用):

a = 1
b = 2

del b
print('a:', a)
print(b)


a: 1

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-47-88051d048241> in <module>
      8 del b
      9 print('a:', a)
---> 10 print(b)

NameError: name 'b' is not defined

可以看出,del 删除的并不是数据,而是删除的变量引用

列表的几种“增加”操作

  • append:在列表尾部进行添加
Docstring: L.append(object) -> None -- append object to end
Type:      builtin_function_or_method
l = [1, 2, 3, 5, 3]
l.append('4')
print(l)

[1, 2, 3, 5, 3, '4']
  • insert:通过索引号添加
Docstring: L.insert(index, object) -- insert object before index
Type:      builtin_function_or_method
l = [1, 2, 3, 5, 3]
l.insert(3, '4')
print(l)

列表的几种排序方式

  • sort 对原列表进行排序(改变)
Docstring: L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
Type:      builtin_function_or_method

例子:

l = [1, 2, 3, 5, 3]
l.sort()
print(l)

[1, 2, 3, 3, 5]

  • sorted 返回一个排好序的列表(新建)
Signature: sorted(iterable, /, *, key=None, reverse=False)
Docstring:
Return a new list containing all items from the iterable in ascending order.

A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
Type:      builtin_function_or_method

例子:

l = [1, 2, 3, 5, 3]
lst = sorted(l)
print('l:', l) 
print('lst:', lst)

l: [1, 2, 3, 5, 3]
lst: [1, 2, 3, 3, 5]

合并列表的几种方式

  • 用 + 直接拼接
lst1 = [1, 2, 3]
lst2 = [3, 5]

lst = lst1 + lst2 # 新建变量 lst
print(lst)

[1, 2, 3, 3, 5]
  • 使用切片
lst1[len(lst1):len(lst1)+len(lst2)] = lst2  # 在 原变量 lst1 上进行 
print(lst1)

[1, 2, 3, 3, 5]

或者:

lst = []
lst[0:len(lst1)] , lst[len(lst2):len(lst2)] = lst1, lst2 # 新建变量 lst
print(lst)

[1, 2, 3, 3, 5]
  • 循环调用 list.append() 拼接
lst = []
for i in lst1:
    lst.append(i)
for j in lst2:
    lst.append(i)
print(lst)

[1, 2, 3, 3, 5]
  • 列表表达式 + for 循环
lst = [j for i in [lst1, lst2] for j in i]
print(lst)

[1, 2, 3, 3, 5]
  • 内置 extend() 方法
lst = []
lst.extend(lst1)
lst.extend(lst2)
print(lst)

[1, 2, 3, 3, 5]

或者直接在 lst1 的基础上:

lst1.extend(lst2)
print(lst1)

[1, 2, 3, 3, 5]

列表解析式

在这里插入图片描述

2. 元组

在这里插入图片描述

3. 字符串

字符串 是不可变类型不支持“增删改”
否则会报错:“ TypeError: ‘str’ object does not support item assignment”)

字符串内涵

在这里插入图片描述

内建函数

在这里插入图片描述

格式化字符串

在这里插入图片描述
例子:

s = 'LeetCode'
lst = [i.lower() for i in s]
s = ''.join(l)

print(s)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值