Loading...
墨滴

瀋凣

2021/12/17  阅读:78  主题:极简黑

python笔记27

Python day27

列表、元组、字符串的共同点:

  1. 都可以通过索引获取每一个元素;
  2. 第一个元素的索引值都是0;
  3. 都可以通过切片的形式获取一个范围;
  4. 都有很多共同的运算符。

1. 序列

根据是否可以被修改,将序列分为可变序列和不可变序列。列表属于可变序列,元组和字符串属于不可变序列。

1.1 序列的运算符和函数

1.1.1 +*

序列的拼接和重复。

举个栗子:
>>> [1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>>> (1,2,3) + (4,5,6)
(1,2,3,4,5,6)
>>> "123" + "456"
'123456'
>>> [1,2,3] * 3
[1,2,3,1,2,3,1,2,3]
>>> (1,2,3) * 3
(1,2,3,1,2,3,1,2,3)
>>> "123" * 3
'123123123'
  • 对于增量赋值也同样适用,但里面有坑:
>>> s = [1,2,3]
>>> id(s)
547130500864
>>> s *= 2
>>> s
[1,2,3,1,2,3]
>>> id(s)
547130500864
>>> s = [1,2,3]
>>> id(s)
547129851584
>>> s = s * 2
>>> s
[1,2,3,1,2,3]
>>> id(s)
547130500864
>>> t = (1,2,3)
>>> id(t)
506997170816
>>> t *= 2
>>> t
(123123)
>>> id(t)
506997621664

每个对象都有三个基本属性:唯一标志、类型、值。其中唯一标志是在对象被创建时一同被创建,且不重复,不可修改。

1.1.2 isis not

身份运算符。用于比较两个对象的存储单元。

运算符 描述 实例
is is 是判断两个标识符是不是引用自一个对象 x is y, 类似id(x) == id(y), 如果引用的是同一个对象则返回 True,否则返回 False
is not is not 是判断两个标识符是不是引用自不同对象 x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False
举个栗子:
>>> x = "vanovel"
>>> y = "vanovel"
>>> is y
True
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> is b
False

建议联系第17课“引用”部分学习。↓

python day17
python day17

1.1.3 innot in

成员运算符。

运算符 描述 实例
in 如果在指定的序列中找到值返回 True,否则返回 False x in y, 如果 xy序列中返回 True
not in 如果在指定的序列中没有找到值返回 True,否则返回 False x not in y, 如果 x 不在 y 序列中返回 True
举个栗子:
>>> 1 in [1,2,3]
True
>>> "py" in "python"
True

1.1.4 del语句

用于删除一个或多个指定的对象。

举个栗子:
>>> x = 'hellopython'
>>> y = [1,2,3]
>>> del x,y
>>> x
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
NameError: name 'x' is not defined
>>> y
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
NameError: name 'y' is not defined
  • del语句可以删除可变序列中的指定元素:
>>> x = [1,2,3,4,5,6]
>>> del x[1:4]
>>> x
[1,5,6]
#使用切片还原此操作:
>>> y = [1,2,3,4,5,6]
>>> y[1:4] = []
>>> y
[1,5,6]
  • del语句独特的骚操作,切片还原不了:
>>> x = [1,2,3,4,5,6]
>>> del x[::2]
>>> x
[2,4,6]
#尝试用切片还原,但是会报错:
>>> y = [1,2,3,4,5,6]
>>> y[::2] = []
Traceback (most recent call last):
  File "<stdin>", line 1in <module>
ValueError: attempt to assign sequence of size 0 to extended slice of size 3

复习并思考:

>>> x = [1,2,3,4,5,6]
>>> x.clear()
>>> x
[]

如何用del语句还原clear()方法的操作?

>>> y = [1,2,3,4,5,6]
>>> del y[:]
点点关注不迷路
点点关注不迷路
- END -

瀋凣

2021/12/17  阅读:78  主题:极简黑

作者介绍

瀋凣