容器类型数据
序列
存放多值的连续内存空间,并且通过编号访问,其实就是类似于C语言的数组,相同数据类型、连续内存空间、使用下标访问
序列索引
支持正负操作,0到N,-N到-1 ,但是C语言不支持负操作
个人觉得这种类型的序列相当于是字符串数组,并且只能使用“”来定义,因为后面的[]表达的是列表。因此个人觉得在单片机中使用这个知识稍微有点少,因为我们很少使用字符串
序列的加和乘操作
切片操作
切片注意:start表示开头(包括本身),end表示结尾(不包括该位置)
成员测试
列表
列表的用法是最像C语言数组的用法
创建列表
列表比C语言的数组多了最重要的特点就是元素类型可以不同,C语言的数组定义是相同数据类型的集合,因此列表比数组的功能更全面
列表之间可以相互复制,像上面的可以直接list_one = list_two,那么list_one的值就变成了list_two,比C语言方便了很多,C语言需要实现一个数组的值复制到另外一个数组中,需要使用循环语句通过下标一个一个赋值,而python直接赋值实现(感觉内部直接帮我们实现了,毕竟python是面向对象的,而C语言是面向过程的,面向对象的直接把过程在内部实现,我们看不见,跟自己做菜和买外卖的区别)
我感觉创建列表不需要使用函数,感觉没必要有点,因为我们定义一个列表很简单,自己使用[],与C语言类似
判断一个对象是否是可迭代对象
追加元素
在C语言的数组中我们需要定义数组大小,但是在python中却不需要定义数组大小(难到原理是定义了一块内存,不够就继续申请,够了其他内存浪费?,那定义的内存空间在堆?,这个问题我也不知道),C语言中直接a[7] = 78;表示追加了,在python中需要使用+或者使用函数进行追加,感觉+更好记住
直接使用+追加单个列表元素
wfh=[12,34,12,34,67] print(wfh) [12, 34, 12, 34, 67] wfh+[34] [12, 34, 12, 34, 67, 34]
wfh=[23,34,56,89] print(wfh) [23, 34, 56, 89] wfh.append(45) 追加单个元素,列表.append() print(wfh) [23, 34, 56, 89, 45] wfh.extend([23,45,67]) 追加多个元素,可以自己写元素,也可以写列表 print(wfh) [23, 34, 56, 89, 45, 23, 45, 67] a=[12,12,12] wfh.extend(a) print(wfh) [23, 34, 56, 89, 45, 23, 45, 67, 12, 12, 12]
插入元素
这个+实现不了,因此只能使用函数实现
[23, 34, 56, 89, 45, 23, 45, 67, 12, 12, 12] wfh.insert(2,8888) print(wfh) [23, 34, 8888, 56, 89, 45, 23, 45, 67, 12, 12, 12] wfh.insert(15,8888) print(wfh) [23, 34, 8888, 56, 89, 45, 23, 45, 67, 12, 12, 12, 8888]
i表示的就是索引号(直接理解为下标号即可),如果索引号对于元素个数,那么就放在最后一个
替换元素
直接对元素重新赋值即可,与C语言的使用是一样的
删除元素
删除指定位置(下标)的元素、移除某一个元素值(内容)、
这里的pop好像说错了,它应该移除的是下标的,因此与del是一样的的作用
元组、集合、字典
列表的功能都能实现他们,因此我觉得使用列表就可以了,并且它与数组很像,因此开发的时候使用起来更方便