2018-10-31 02:12:56
数据结构
列表
在学习2种对字符串的方法运用做了总结,现在对列表的方法进行梳理:
由于列表的可变性,该操作是合法的。
添加
1、append():添加项不管是什么数据类型结构,都将会视为一个元素,位置在列表最后。
2、extend():添加项不管是什么数据类型结构,都将会视为系列元素,位置在列表最后。
插入
1、insert():偏移位置插入
删除
1、remove():删除出现指定的第一个元素
2、pop():删除指定的索引位置元素,缺省为-1,即为最后一个元素
3、clear():全部元素删除
查询
1、index():
2、count():元素出现的次数
排序
1、sort():
2、reverse():反转
copy
1、copy():复制
列表做堆栈,先进后出,append-pop
列表做队列,先进先出,append-popleft
列表的创建方式
squares = list(map(lambda x: x**2, range(10)))
squares = [x**2 for x in range(10)]
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
列表的嵌套
[[row[i] for row in matrix] for i in range(4)] # for循环输出的列表嵌套与外层的for循环输出列表
list(zip(*matrix))
注意:这里有一个zip函数。
zip():下面是网上查找的用法,总结下:
1、将对象打包为由元组组成的列表:list[tuple(),tuple(),tuple(),tuple()…];
2、列表中的各个元组长度不一致时,以最短的为每个元组的长度;
3、zip的作用是将多个对应索引列表的元素组成一个单元元组,多个单元元组在组成zip的list
4、*zipped,将元组解压为列表。与zip是反向操作。
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c) # 元素个数与最短的列表一致:将ac中对应索引的元素组成一个单元元组,多个单元元组在组成zip的list
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped) # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式 [a,b]
[(1, 2, 3), (4, 5, 6)]
del语句
del可以删除的对象可以是数据结构中的元素,也可以是数据结构本身。
pop只能删除数据结构中的元素,对数据结构本身的存在没有影响。
元组
元组元素可以查询和访问,索引可用,元素为有序序列。
赋值的时候,由逗号分隔,不一定有小括号,但是空元组一定要有小括号。交互模式输出元组的时候一定有小括号。元组不可变性,不能对元组本身进行增删改,这些操作的执行需要重新赋值变量。
上面的zip函数,侧面说明了元组的一个特征处理:解包与打包:
t = 12345, 54321, "'hello!'1234554321'hello!'"
x, y, z = t
print(x)
12345
集合
下面对集合的相关特征进行描述:
1、集合无序,无法查询索引;
2、集合没有重复元素
3、创建空集合,需要set();
4、交互时输出的集合用的是{},这个不是说明这是字典,定义原因不清楚。只需要了解到字典是以键:值来作为元素的,与集合输出是不同的。
5、四则运算在集合上的体现可以这样理解:加(|):并集;减(-):差集;乘(&):交集;除(^):对称差异集合【这里的除,可以理解为并集除开交集的集合】
字典
字典是一种映射类型 。键:值 作为元素的序列
字典作为有序序列,可以访问,不过索引就是键
字典的可变性,说明可以进行增删改。
空字典是{};
检测键的存在可以使用in操作,根据返回的布尔量来判断。
dict():直接构造字典
循环技术
字典的循环遍历:items():可以遍历字典中的所有元素(键:值)。
序列(无分有序无序),enumerate(),均可以实现所有元素的遍历。
对于同时实现多个循环,除了for循环的嵌套,还可以使用zip。
排序的方面,有sort()和reverse()
对于序列的操作,不要在原来的变量上操作,新建操作最安全。
while & if
条件的设置:这些可以单独使用,也可以组合使用。
1、表达式 (注意这个==)
2、…in…
3、…not in…
4、…is…
5、…is not…
6、…and…
7、…or…
8、…not…
2018-10-23 15:57:35
Python中,初步接触,这几种结构,估计应该是运用很多,下面分别对他们进行分析:
…
Python中的数据类型有很多种:
1、数字:整型int,浮点型,复数,分数,各种进制数字;
2、字符串(可以索引,分片slice);
3、
数据结构 列表 元组 集合 字典
名称 list tuple set dic
结构符号 [ ] ( )有或无 set( ) { }
是否可变 可变 不可变 可变 可变
元素分隔符 , , , ,
元素类型相同 支持 支持 支持 键:值
元素类型不同 支持 支持
索引与切片 支持 支持 支持 支持
增 支持 不支持 支持 支持
删 支持 不支持 支持 支持
改 支持 不支持 支持 支持
查 支持 支持 支持 支持
注:索引有正索引(从0开始,从左到右)、负索引(从-1开始,从右到左)
注:运算符+一类,对于对象不同,实现也不同:对于数字而言是进行加法,对于字符串而言就是串联;
注:不可变:就是数字、字符串、元组中的元组在创建以后中间的单个元素就不能在更改,想要改变就必须使用其他元素与相同的变量名进行运算得到。