学习笔记2


内建数据结构、函数及文件



文章目录

  • 学习笔记2
  • 一、数据结构与序列
  • 1.元组
  • 2.列表
  • 3.字典
  • 4.集合



# 前言

内建功能主要被设计为与python内建数据操作工具协同使用
python的常用数据结构:元组、列表、字典、集合


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据结构与序列

1.元组

元组是一种长度固定、不可变的python序列。

创建元组:

python构造soap请求参数 python构造数据包_python


元素是元组的元组:(可以看出该元组的元素是两个元组)

python构造soap请求参数 python构造数据包_python构造soap请求参数_02


利用tuple函数将任意序列1或迭代器2转换为数组:

python构造soap请求参数 python构造数据包_python构造soap请求参数_03


可以通过序列索引来取得里面指定的元素(这一点同很多其它语言类似)

python构造soap请求参数 python构造数据包_python构造soap请求参数_04


元组是不可变的

python构造soap请求参数 python构造数据包_pycharm_05


但是如果元组里面包含一个可变的对象,那么这个对象内部就是可变的

python构造soap请求参数 python构造数据包_python构造soap请求参数_06


元组之间可以通过+来实现连接

python构造soap请求参数 python构造数据包_元组_07


元组可以通过 * 来复制

对象自身并没有复制,只是指向他们的引用进行了复制.

python构造soap请求参数 python构造数据包_python_08


元组也可以进行拆包(嵌套也是可以的)

python构造soap请求参数 python构造数据包_数据结构_09


(拆包常用场景就是遍历元组或列表组成的序列)

seq = [(1,2,3),(4,5,6),(7,8,9)]
for a,b,c in seq:
    print('a={0},b={1},c={2}'.format(a,b,c))

python构造soap请求参数 python构造数据包_数据结构_10


*rest 可以用来替代任意长度的位置参数列表

python构造soap请求参数 python构造数据包_python构造soap请求参数_11

2.列表

列表的长度是可以变化的,所包含的内容也是可以修改的,一般使用中括号[]或者list类型函数来定义列表。

列表常用函数
append:增加元素到列表尾部
insert: 插入到列表任何位置
pop:将知道哪个位置的元素移除
remove:将定位到第一个符合要求的值并且移除
in:关键字可以检查一个值是否在列表内
(in 检查是否存在效率是低下的,在列表中进行线性的扫描,而字典和集合是基于哈希表,同时检查所有元素)

连接和联合函数、排序
可以利用 + 将两个列表进行联合
extend 可以向该列表添加多个元素

切片
基本形式是将start:stop传入到索引符号[]中。
seq[::2]表示每隔多少个数取一个值

enumerate 可以追踪到当前元素的索引
zip 将列表、元组或其他序列的元素配对,新建一个元组构成的列表

python构造soap请求参数 python构造数据包_python构造soap请求参数_12

3.字典

update 合并字典(键值相同时,会被覆盖)
del、pop  删除值

4.集合

集合是一个无序且元素唯一的容器

set :函数会去掉重复的数据,而保留一个
union |  :两个集合的并集
& intersection :获得交集

python构造soap请求参数 python构造数据包_数据结构_13


python构造soap请求参数 python构造数据包_pycharm_14


  1. 序列
    1、可迭代;
    2、支持下标访问,即实现了 getitem() 方法,同时定义了 len() 方法,可通过 len() 方法获取长度;
    3、内置的序列类型:list、str、tuple、bytes;
    4、dict 同样支持 getitem() 和 len(),但它不归属于序列类型,它是映射类型,因为它不能根据下标查找,只能根据 key 来查找;
    5、抽象类 collections.abc.Sequence 还提供了很多方法,比如 count()、index()、contains()、reversed()可用于扩展;
  2. 迭代器
    1、一个表示数据流的对象,可通过重复调用 next(或使用内置函数next())方法来获取元素。当没有元素存在时,抛出 StopIteration 异常;
    2、iter(obj)接受一个迭代器作为参数时,返回的是它本身。在可迭代对象里我们说过,iter(obj)方法不报错,说明它一定是一个可迭代对象。因此迭代器一定是一个可迭代对象;
    3、一个迭代器必须要实现 iter() 方法。但因为迭代器前提必须是一个可迭代对象,所以只实现 iter() 方法不一定是一个迭代器。