Python基础知识03
目录
一、字符串
(一)可变字符串
Python中字符串不可变,不支持原地修改,若原地修改,可使用io.stringIO对象或array模块。
>>> import io
>>> s = "hello,sxt"
>>> sio = io.StringIO(s)
>>> sio
<_io.StringIO object at 0x0000024F5CEB0CA8>
>>> sio.getvalue()
'hello,sxt'
>>> sio.seek(7)
7
>>> sio.write("g")
1
>>> sio.getvalue()
'hello,sgt'
(二)运算符总结_位符操作_优先级问题
1.常见运算符
>>> a = 4
>>> 3<a <10 #关系运算符可以连用
True
>>> a = 0b11001
>>> b = 0b01000
>>> a
25
>>> b
8
>>> c = a|b
>>> c
25
>>> bin(c) #bin()可以将数字转为二进制表示
'0b11001'
>>> bin(a&b)
'0b1000'
>>> bin(a^b) #相异为1
'0b10001'
>>> a = 3
>>> a<<2 #左移一次乘以2,右移一次除以2
12
乘法操作本质:复制(字符串、列表、元祖复制)
2.运算符优先级
二、列表
Python的列表大小可变。
(一)列表的创建
1.基本语法创建:a = [10,20,30,40]
2.list()创建
3.range()创建整数列表
>>> a = [10,20,30,40] #基本语法创建
>>> a = list("hello sxt") #list()创建
>>> a
['h', 'e', 'l', 'l', 'o', ' ', 's', 'x', 't']
>>> list(range(3,30,3)) #range()创建整数列表
[3, 6, 9, 12, 15, 18, 21, 24, 27]
>>> list(range(0,-20,-1))
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9, -10, -11, -12, -13, -14, -15, -16, -17, -18, -19]
4.推导式生成列表
>> a = [x*2 for x in range(5)] #循环创建多个元素
>>> a
[0, 2, 4, 6, 8]
>>> a = [x*2 for x in range(100) if x%9==0] #通过if过滤元素
>>> a
[0, 18, 36, 54, 72, 90, 108, 126, 144, 162, 180, 198]
(二)列表的增加和删除(最好在末尾增加,会大大提高列表操作效率。)
append():列表尾部添加新元素,不改变id,推荐使用
+运算符:复制创建新的列表对象,改变id,不推荐
extend():原地操作,不改变id
insert():涉及大量元素移动
乘法扩展:生成新列表,多次重复
(三)列表元素的删除
del()(索引):删除指定位置元素
pop()(索引):删除并返回指定位置元素,未指定则默认为最后一个
remove()(元素):删除首次出现的指定元素,不存在则异常
(四)列表元素访问和计数
通过索引直接访问
index():获得指定元素在列表中首次出现的索引
count():获得指定元素在列表中出现的次数
len():返回列表长度
(五)成员资格判断
in
count()
(六)切片操作
(七)列表遍历
>>> for obj in [2,3,4,5]:
print(obj)
2
3
4
5
(八)列表排序
1.修改原列表:
sort()
sort(reverse= True)
random.shuffle()
>>> a = [20,60,40,10]
>>> id(a)
2539899365960
>>> a.sort() #默认升序
>>> a
[10, 20, 40, 60]
>>> a.sort(reverse= True) #降序
>>> a
[60, 40, 20, 10]
>>> import random #打乱顺序,随机
>>> random.shuffle(a)
>>> a
[60, 20, 10, 40]
>>> random.shuffle(a)
>>> a
[60, 40, 10, 20]
2.建新列表的排序:sorted()
3.reversed()返回迭代器:只能使用一次,遍历结束不能再使用
>>> a = [20,10,30,40]
>>> c = reversed(a)
>>> c
<list_reverseiterator object at 0x0000018B30314F48>
>>> list(c)
[40, 30, 10, 20]
>>> list(c)
[]
4.列表其他内置函数汇总
max()
min()
sum()
(九)多维列表
a = [
["高小一",18,30000,"北京"],
["高小二" ,19,20000,"上海"],
["高小四",20,10000,"深圳"],
]
for m in range(3):
for n in range(4):
print(a[m][n],end="\t")
print() #打印完一行,换行
三、元祖
(一)元祖的创建
1.通过()创建,小括号可省
如果元祖只有一个元素,则必须在后面加逗号
2.tuple()
>>> a = (1)
>>> type(a)
<class 'int'>
>>> a = (1,)
>>> type(a)
<class 'tuple'>
>>> b = tuple()
>>> b = tuple("abc")
>>> b = tuple(range(3))
>>> b = tuple([2,3,4])
>>> b
(2, 3, 4)
※tuple()可以接收列表、字符串、其他序列类型,迭代生成元祖;list()可以接收元祖、字符串、其他序列类型、迭代器等生成列表。
3.生成器推导式创建元祖
>>> s = (x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x0000027AA33227C8>
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s)
[]
>>> s
<generator object <genexpr> at 0x0000027AA33227C8>
>>> tuple(s)
()
>>> s = (x*2 for x in range(5))
>>> s. __next__()
0
>>> s. __next__()
2
>>> s. __next__()
4
>>> s. __next__()
6
(二)元祖的元素访问和计数
1.元祖的元素不能修改
2.访问同列表
3.sorted():生成新列表对象
(三)zip
>>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]
>>> d = zip(a,b,c)
>>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]
(四)元祖总结
1.元祖的核心特点:不可变序列;
2.元祖的访问和处理速度比列表快;
3.与整数和字符串一样,元祖可以做字典的键,列表不可以。