可变字符串
python中,字符串属于不可变得对象,不支持原地修改,但是我们可以使用io模块进行修改
例如:
>>> import io
>>> s = "hello,sxt"
>>> sio = io.StringIO(s)
>>> sio
<_io.StringIO object at 0x000002D5363CC5E8>
>>> sio.getvalue()
'hello,sxt'
>>> sio.seek(7)
7
>>> sio.write("g")
1
>>> sio.getvalue()
'hello,sgt'
操作符 | 说明 |
---|---|
|,^,& | 或,异或(相同为0,相异为1),与 |
<<,>> | 移位 |
注:运算规则:
位运算与算术运算>比较运算符>赋值运算符>逻辑运算符
序列
列表
增删改查:
方法 | 描述 |
---|---|
list.append(x) | 将元素x添加到列表尾部 |
list.extend(alist) | 将alist所有元素添加到列表尾部 |
+ | 不是真正的尾部添加元素,而是创建新的列表对象 |
list.insert(index,x) | 在列表指定位置index处插入元素x |
list.remove(x) | 在列表中删除首次出现的指定元素x |
list.pop([index]) | 删除并返回列表list指定位置index处的元素,默认是最后一个元素 |
list.clear() | 删除列表中的所有元素,并不是删除列表 |
list.index(x) | 返回第一个x的索引位置 |
list.count(x) | 返回指定元素x在列表中出现的次数 |
len() | 列表长度 |
list.reverse() | 所有元素原地翻转 |
list.sort() | 所有元素原地排序 |
list.copy() | 浅拷贝 |
列表的创建
list()可以将任何可迭代的数据转化为列表。
range(start,end,step)创建整数列表
列表的排序
修改原列表,不新建新列表
方法 | 描述 |
---|---|
a.sort(), a.sort(reverse) | 升序,降序 |
random.shuffle() | 打乱顺序 |
新建列表的排序
方法 | 描述 |
---|---|
a.sorted() | 升序 |
多维列表
二维列表
内存结构为:
元组tuple
列表属于可变序列
元组属于不可变序列(元组没有增,修,删方法)
元组的创建
- 通过()创建 注:若仅含一个元素 a=(20,)需要加逗号
- 通过tuple()转化元素为元组
zip:将多个列表对应位置的元素组合成为元组,并返回这个zip对象。
元组总结
- 不可变序列
- 元组访问和处理速度比列表快
- 与整数和字符串一样元组可以作为字典的键,列表则永远不能作为字典的键使用