1.列表
(可获取可修改有序)
python特有的性质
可以正向索引
也可以***反向索引***
listvar = [1,3,True,“小姜不吃姜”]
正向索引 0 1 2 3
反向索引 -4 -3 -2 -1
获取最后一个元素
print(listvar[3])
print(listvar[-1])
小姜不吃姜
列表可以修改里边的值
listvar[3]= “小李”
2.元组 tuple
(可获取不可修改有序)
定义一个空元组
tuplevar = ()
tuplevar = (“小李”, "小姜”)
正向索引
反向索引
元组不支持元素修改
单纯的()能代表元组类型吗?
逗号是标识是否是元组的标识符
tuplevar = (1) #int型
tuplevar = (1,) #tuple型
tuplevar = 1, #tuple型
在里边没有逗号的情况下,括号中写的是什么类型就是什么类型
3.字符串
(可获取不可修改有序)
4.集合set
(无序,不可获取,不可修改,自动去重)
(交差并补)
我:张杰,隔壁老樊
你:张杰,董卿
setvar = {“张杰”,“董卿”,“康辉”,“撒贝宁”}
空集合如何定义
setvar = set()
5.字典
(由键值对存储的数据)
1.定义空字典
dictvar = {}
2.定义一个普通的字典
dictvar = {“姓名1”:“小姜”, “姓名2”:“小李”}
3.获取字典的值
res = dictvar[“姓名1”]
4.修改字典的值
dictvar[“姓名1”] = “校长”
5.字典的键的要求
推荐用变量命名的字符串进行使用
字典的键 和 集合的值 有数据上的要求
可哈希的类型
Number(int,float,bool,complex),str,tuple
不可哈希的类型
list , set , dict
但凡提到哈希算法(hash),都是典型的无序特征
目的:为了更加均匀的把数据分配到内存中,底层运用了取模类似的算法;
Python3.6版本,对字典做了优化,存储数据的时候用的哈希算法,但是拿出数据的时候,重新按照定义的顺序做了排序,所以看起来有序,实际无序。