Python基础(三)
可变字符串
Python原本是不支持修改字符串的,为了使用方便,可以使用io.String()对象或arrary模块。
# 将字符串中第七个字符改为“a”
import io
s="hello,yixia"
sio=io.StringIO(s)
sio.seek(7)
sio.write("a")
sio.getvalue()
运算符
运算符 | 说明 |
---|---|
and, or, not | 布尔与,布尔或,布尔非 |
is, is not | 同一性判断,判断是否为同一个对象 |
<, <=, >, >=, !=, == | 比较值是否相等,可以连用 |
|, ^, & | 按位或,按位异或,按位与 |
<<, >> | 移位 |
~ | 按位翻转 |
+, -, *, /, //, % | 加,减,乘,除,浮点除,整数除,取余 |
** | 幂运算 |
小细节
- 加法操作
- 数字相加
3+2
- 字符串拼接
"3"+"2"
- 列表、元组等合并
[1,2,3]+[3,4,5]
- 乘法操作
- 数字相乘
3*2
- 字符串复制
"wyx"*3
- 列表、元组等复制
[1,2,3]*3
- 运算符优先级
使用小括号组织即可。
序列
序列是一种数据存储方式,用来存储一系列数据。
Python中常用序列结构有:字符串、列表、元组、字典、集合
列表
列表用于存储任意数目、任意类型的数据集合。列表中的元素可以各不相同,可以是任意类型。
列表对象的常用方法
方法 | 要点 | 描述 |
---|---|---|
list.append(x) | 增加元素 | 将元素x增加到列表list尾部 |
list.extend(aList) | 增加元素 | 将列表aList所有元素加到列表list尾部 |
list.insert(index,x) | 增加元素 | 将列表指定位置index处插入元素x |
list.removr(x) | 删除元素 | 将列表list中删除首次出现的指定元素x |
list.pop([index]) | 删除元素 | 删除并返回列表list指定为止index处的元素,默认是最后一个元素 |
list.clear() | 删除所有元素 | 删除列表所有元素,并不是删除列表对象 |
list.index(x) | 访问元素 | 返回第一个x的索引位置,若不存在x元素抛出异常 |
list.count(x) | 计数 | 返回指定元素x在列表list中出现的次数 |
len(list) | 列表长度 | 返回列表中包含元素的个数 |
list.reverse() | 翻转列表 | 所有元素原地翻转 |
list.sort() | 排序 | 所有元素原地排序 |
list.copy() | 浅拷贝 | 返回列表对象的浅拷贝 |
列表的创建
- 基本语法创建
a=[1,1,4,3,"xjp"]
- list()创建
使用list()可以将任何可迭代的数据转化为列表。
>>> a=list() #创建一个空的列表对象
>>> a=list(range(10))
>>> a
[0,1,2,3,4,5,6,7,8,9]
>>> a=list("wyx")
>>> a
["w","y","x"]
-
range()创建整数列表
语法格式为:range([start,] end [,step])
start参数:可选,表示起始数字。默认为0。
end参数:必选,表示结尾数字。
step参数:可选,表示步长。默认为1。 -
推导生成列表
在控制语句中常用。
列表元素的增加和删除
- 元素的五种添加方式
- append()
原地修改列表对象,尾部添加元素,推荐使用。 - “+”运算符操作
并非真正的在尾部添加元素,而是创建新的列表对象。也就是说,地址发生了变化。 - extend()
将目标列表的所有元素添加到本列表的尾部,属于原地操作,不创建新的列表对象。 - insert() 插入元素
将指定元素插入到列表对象的任意指定位置。
>>> a=[1,2,3]
>>> a.insert(2,40)
>>> a
[1,2,40,3]
- 乘法扩展
直接上代码。
>>> a=['a',2]
>>> b=a*3
>>> b
['a',2,'a',2,'a',2]
- 元素删除的三种方式
- del
删除列表指定位置的元素,实质是在进行拷贝。
>>> a=[1,2,3]
>>> del a[1]
>>> a
[1,3]
- pop()
删除并返回指定位置元素。默认为操作列表最后一个元素。
>>> a=[1,2,3,5,6]
>>> b=a.pop()
>>> b
6
>>> c=a.pop(2)
>>> c
3
- remove()
删除首次出现的指定元素,若不存在该元素抛出异常。
列表元素访问和计数
- 通过索引直接访问元素
和字符串访问一样。注意范文:[0,列表长度-1]。超出范围则抛出异常。 - index()获得指定元素在列表中首次出现的索引
语法是:index(value,[start,[end]]) - count()获得指定元素在列表中出现的次数
- len()返回列表长度
- 成员资格判断 in
切片操作slice
语法格式:[起始偏移量start:终止偏移量end[:步长step]]
包头不包尾
列表排序
- 修改原列表,不建新列表的排序
- 升序排列,sort()
- 降序排列,sort(reverse=True)
>>> a=[2,1,3]
>>> a.sort()
>>> a
[1,2,3]
>>> a.sort(reverse=True)
>>> a
[3,2,1]
- 打乱顺序
>>> a=[3,4,2,1]
>>> import random
>>> random.shuffle(a)
>>> a
[2,1,4,3]
- 建立新的列表排序
- sorted(a)
- sorted(a,reverce=True)
- reversed() 返回迭代器
列表其他内置函数
- max和min
返回列表中的最大值、最小值 - sum
对数值型列表的所有元素进行求和操作,对非数值型列表运算则会报错。
多维列表
- 二维列表
一维列表存储一维、线性的数据。
二位列表存储二维、表格的数据。
元组
列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
因此,只需要学习元组的创建和删除,元组中元素的访问和计数即可。
元组的创建
- 通过()创建元组。小括号可以省略。如果元组只有一个元素,则必须后面加逗号。否则会认为是整数。
- 通过tuple()创建元组
语法格式:tuple(可迭代的对象)
b=tuple() #创建一个空元组对象
b=tuple("abc") #将字符串转化为元组
b=tuple(range(4)) #将range转化为元组
b=tuple([1,2,3]) #将list转化为元组
总 结
tuple()可以接受列表、字符串、其他序列类型、迭代器生成元组。
list()可以接受元组、字符串、其他序列类型、迭代器等生成列表。
元组元素的访问和计数
- 元组的元素不能修改
- 元素的访问
- 索引访问
- 切片slice访问
- 排序sorted(),并生成新的列表对象。
- zip(列表1,列表2,…)
元组总结
- 元组的核心特点:不可变序列;
- 元组的访问和处理速度比列表快;
- 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。