为了是程序能方便的存储和操作数据,python语言提供了一些内置的数据结构 例如:列表,元组,字典和集合等,所谓“内置”,指的是他们是python语言的一部分,因此在程序中可以直接使用他们
L=['word',11,True] #列表表示
L=(5,[1,3],8) #元组表示
L={'张三':'111','李四':'222','王五':'333'} #字典表示
L=
print(L)
列表
相当于其他编程语言中的数组
列表特点:
1:列表中的所有数据是安装顺序有序排列的,列表属于序列类型
2:列表中的所有数据都有两个整数类型的索引,通过指定的索引总能映射到唯一确定的数据
3:列表中可以存在重复的数据
4列表中可以保存任何类型的数据,多种类型的数据可以混合存储在一个列表中
5:列表可以根据需要动态的伸缩,系统会根据需要动态地分配和回收内存,因此使用前无须预先什么列表的容量
创建列表
L=['word',11,True] #创建列表,尽量用大写,不用小写,和list,list是类
print(L) #打印列表
print ([]) #创建空列表
内置函数list 类
print(list(range(1,5))) #range是范围,list是类表示列表
print(list(['aa',1,5])) #list列表
print(list()) #打印空列表
元组
除了列表,元组也是python语言提供的内置数据结构之一
元组与列表主要区别:元组用小括号表示(),列表用中括号表示[ ] 小括号可以省略
空元组的两中表示方法:
print(())
print(tuple())
元组是不可变类型(列表是可变类型)
设计元组理由:一旦创建不可变类型的对象,对象内部的所有数据就不能被修改,避免由于修改数据导致的错误,此外对于不可变类型的对象在多任务环境下同时操作对象时不需要加锁,因此在程序中尽量使用不可变类型的对象
如图,更改会报错
对于元组中可变类型的数据,元组中存储的是其引用(在内存中的地址),因此存储的引用是不能改变的,不能再引用任何其他对象,但是可以改变指向的可变类型数据
t=(5,[1,3],8)
t [1][0] =7
print(t)
t=(18,) #一个数值的元组必须要包含逗号"," 否则会被认为是数学公式的小括号
print(t)
print(type(t)) #返回的是tuple
字典
字典中的所有元素都是一个key -value,通过key总能映射到唯一的value,字典中不可以存在重复的key,但可以存在重复的value
字典中的元素是无序的,顺序不重要,重要的是键值对映射关系
字典中的key必须是不可变对象,存取字典中的键值对,系统会调用内置函数hash根据指定的key计算除value的存储位置,也就是哈希值
字典可以根据需要动态的伸缩,系统会根据需要动态地分配和回收内存,因此再使用前无需先声明字典容量
字典会浪费较大的内存,与列表相比,是用空间换取时间
使用花括号创建字典:
A={'张三':'111','李四':'222','王五':'333'}
print(A['王五'])
调用类get:
A={'张三':'111','李四':'222','王五':'333'}
print(A.get('李四'))
集合
可以把集合看做是没有存储value的字典
集合中不可以存储重复的数据
集合中的数据是无序的
集合中的数据可以是任何不变的类型,多种类型的数据可以混合存储在一个集合中
集合可以根据需要动态的伸缩,也就是说,系统会根据需要动态的分配和回收内存,因此在使用前,无需预先声明集合的容量
使用花括号创建字典:
s={3,5,9,4}
print(s)
集合中重复的元素会被去除掉
s={3,5,9,4,3,3}
print(s)