python第三节尚学堂

可变字符串

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'
>>> 

基本运算符

python第三节尚学堂

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不支持自增++和自减--

 

 

序列

python第三节尚学堂

列表

python第三节尚学堂

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

列表的创建

.1.基本语法[]创建

python第三节尚学堂

2.list()创建

python第三节尚学堂

range()创建整数列表

python第三节尚学堂

python第三节尚学堂

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

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

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

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

python第三节尚学堂

列表元素的增加和删除

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

 

append()方法

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

python第三节尚学堂

+运算符

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

python第三节尚学堂

extend()

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

python第三节尚学堂

 

insert()

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

python第三节尚学堂

乘法扩展

python第三节尚学堂

列表元素的删除

del删除

python第三节尚学堂

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

pop()方法

python第三节尚学堂

python第三节尚学堂

remove()方法 

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

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

python第三节尚学堂

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

python第三节尚学堂

index()

python第三节尚学堂

python第三节尚学堂

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

python第三节尚学堂

len()返回列表长度

python第三节尚学堂

成员资格判断

count() 大于0,存在

in 一般用in判断

python第三节尚学堂

切片操作

python第三节尚学堂

python第三节尚学堂

python第三节尚学堂

python第三节尚学堂

列表的遍历

for obj in listObj:

print(obj)

列表排序

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

a.sort() #升序

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

random()  #打乱排序

python第三节尚学堂

python第三节尚学堂

建新列表的排序

python第三节尚学堂

sorted()

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

reversed()返回迭代器

python第三节尚学堂

python第三节尚学堂

max(a)

min(a)

sum(a)

python第三节尚学堂

多维列表

用的一般是一维,二维。

打印二维列表:

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

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

python第三节尚学堂

元组的创建

python第三节尚学堂

python第三节尚学堂

通过tuple()创建元组

python第三节尚学堂

python第三节尚学堂

元组的元素的访问和计数

不能修改,

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

python第三节尚学堂

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

python第三节尚学堂

生成器推导式创建

python第三节尚学堂

只能访问一次生成器对象

python第三节尚学堂

s._next_()

python第三节尚学堂

元组总结

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

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

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