python第三节尚学堂

这篇博客详细介绍了Python中的可变字符串和序列概念,特别是列表的操作,包括创建、比较运算符、位操作、列表的增加、删除、排序、多维列表以及元组的相关知识。强调了列表在尾部添加元素的高效方法,如append()和extend(),并提醒了列表排序的两种方式——修改原列表和新建列表。此外,还提到了元组作为不可变序列的特点和在字典中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可变字符串

python中字符串属于不可变对象,所以只能调用io.StringIo

io.StringIO

>>> import io
>>> s = "hello,sxt"
>>> sio = io.StringIO(s)
>>> sio
<_io.StringIO object at 0x00000262E80F8B88>
>>> sio.getvalue()
'hello,sxt'
>>> sio.seek(7)
7
>>> sio.write("g")
1
>>> sio.getvalue()
'hello,sgt'
>>> 

基本运算符

1.比较运算符可以连用

2.位操作

例如:按位与 :&

10111&10000=00111

也就是不同为0,相同为1,1+0=0,0+0=1,1+1=1.

按位异或:不同为1,相同为0,符号为^

按位或:值等于前面的,如a|b=a,b|a=b.

<<左移1位相当于乘以2,2相当于乘以4,3相当于8,4相当于16

 

 

 

<<右移1位相当于乘以2,2相当于乘以4,3相当于8,4相当于16

python不支持自增++和自减--

 

 

序列

列表

与c语言的数组不同的是,列表大小可变,根据需要随时增加或缩小。

列表的创建

.1.基本语法[]创建

2.list()创建

range()创建整数列表

注意:range(3,10)右边不包括10,为3,4,5,6,7,8,9

range(15,10,-1)右边不包括10,为15,14,13,12,11

即报左不报右,取[3,10)的整数

推导式生成列表(简介一下,重点在for循环后讲)

列表元素的增加和删除

考虑效率问题,一般只在列表尾部添加和删除元素。

 

append()方法

是真正的列表尾部添加新的元素,速度最快,建议使用!

+运算符

不是真的尾部添加元素,而是创建新的列表对象;将原列表的元素和新列表的元素依次复制到新的列表对象。这样,会涉及大量的复制操作,对于操作大量元素不建议使用。

extend()

适用于两个列表的连接,原地操作,效率也较高

 

insert()

插入任意位置。效率慢,大量移动。

乘法扩展

列表元素的删除

del删除

底层原理仍然是拷贝,和列表元素的添加原理一样。

pop()方法

remove()方法 

(操作的是元素,和上面两个不一样,上面两操作的是索引位置即偏移量)

删除首次出现的元素,若不存在则抛出异常

列表元素访问和计数
通过索引直接访问元素

index()

count()获得指定元素在列表中出现的次数

len()返回列表长度

成员资格判断

count() 大于0,存在

in 一般用in判断

切片操作

列表的遍历

for obj in listObj:

print(obj)

列表排序

修改原列表,不建新列表的排序

a.sort() #升序

a.sort(reverse = True) #降序排序

random()  #打乱排序

建新列表的排序

sorted()

>>> a=[10, 20, 30, 25]
>>> id(a)
2623824047112
>>> a =sorted(a)
>>> id(a)
2623823873160
>>> a
[10, 20, 25, 30]
>>> 

reversed()返回迭代器

max(a)

min(a)

sum(a)

多维列表

用的一般是一维,二维。

打印二维列表:

a = [
        ["高小一",18,30000,"北京"],
        ["高小二",19,20000,"上海"],
        ["高小三",20,10000,"深圳"]
    ]

for m in range(3):
    for n in range(4):
        print(a[m][n],end="\t")
    print()

元组tuple

列表中都讲过,所以就是列表的复习。

元组的创建

通过tuple()创建元组

元组的元素的访问和计数

不能修改,

排序只能用sorted()生成的新的列表,注意生成的是列表,因为元组对象不能修改,所以不能用sort()

zip(列表1,列表2,列表3)

生成器推导式创建

只能访问一次生成器对象

s._next_()

元组总结

1.元组的核心特点是:不可变序列

2.元组的访问和处理速度比列表快

3.与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值