马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 15271953841 于 2024-2-21 06:35 编辑
Python 3.12.1 (tags/v3.12.1:2305ca5, Dec 7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
列表、元组和字符串似乎有很多共同点:
1. 都可以通过索引获取每一个元素
2. 第一个元素的索引值都是0
3. 都可以通过切片的方法获取一个范围内的元素的集合
4. 都有很多共同的运算符
列表、元组和字符串被Python统称为序列。
根据是否能被修改这一特征,分为可变序列和不可变序列。
列表是可变序列,而元组和字符串是不可变序列。
这节课学习能够作用于序列的一些运算符和函数。
首先学“+”和“*”,加法表示两个序列拼接,乘法表示将两序列重复(就是拷贝)
[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)
2451102186752 (内存地址)
s *= 2
s
[1, 2, 3, 1, 2, 3]
id(s)
2451102186752 (与原来的s得到的id(s)值是一样的)
在Python中,每一个对象都有三个属性,第一个是唯一标志,第二和第三是类型和值。唯一标志是随着对象创建时就有的,是不可以被修改的,也不会有重复的值,只要这个对象一天在这个内存中,它这个值就不会有重复的,可以把唯一标志理解成对象的身份证,那id这个BIF这个函数的作用是返回一个代表指定对象的位于标准的整数值。
如果对象是一个不可变序列:
t=(1,2,3)
id(t)
2451102328768
t *= 2
t
(1, 2, 3, 1, 2, 3)
id(t) (虽然变量名还是叫t,但是早已物是人非,被狸猫换太子了)
2451096714688
is 和 is not 判断的是非问题
用于检测对象的id值是否相等,从而判断是否是同一个对象,因此,它们也称之为同一性运算符。
x="FishC"
y="FishC"
x is y
True
x=[1,2,3]
y=[1,2,3] (列表是可变的,所以列表内容虽然一样,但Python为它们开辟了两个不同的位置存放)
x is y
False
in 和 not in 判断是包含问题。
"襄" in "我爱襄阳"
True
"ang" in "我爱xiangyang"
True
"ia" not in "我爱xiangyang"
False
del 用于删除一个或多个指定的对象。
x="FishC"
y=[1,2,3]
del x,y
x
Traceback (most recent call last): (报错,说明x整个对象都被删除了)
File "<pyshell#28>", line 1, in <module>
x
NameError: name 'x' is not defined
y
Traceback (most recent call last): (报错,说明y整个对象都被删除了,就像从来没有出现过)
File "<pyshell#29>", line 1, in <module>
y
NameError: name 'y' is not defined
还可以删除可变序列中的指定元素。
x=[1,2,3,4,5]
del x[1:4]
x
[1, 5]
y=[1,2,3,4,5]
y[1:4]=[]
y
[1, 5]
z=[1,2,3,4,5]
del z[::2]
z
[2, 4]
zz=[1,2,3,4,5]
zz[::2]=[] (切片方法不行)
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
zz[::2]=[]
ValueError: attempt to assign sequence of size 0 to extended slice of size 3
x=[1,2,3,4,5]
x.clear()
x
[]
x=[1,2,3,4,5]
del x[:] (不能用del x,因为del x直接把x整个对象就删除了)
x
[]
|