前言
养成一个好的习惯只需要坚持21天,Day2
使用list和tuple
list 列表
list是一种有序的集合,可以随时添加和删除其中的元素。它的表示用[]。list = []
变量name就是一个list。用len()
函数可以得到list的长度,即该list当中有多少个元素。
list中元素的访问采用索引,⚠️注意索引是从0开始的,当索引超出list的长度,Python会报一个IndexError错误,所以确保索引不要超出范围,最后一个元素的索引是len(变量名)-1
索引也可以为负数,-1表示最后一个元素,-2、-3以此类推。
list元素的添加
末尾添加元素,用append()
方法,name.append('Bob')
指定位置添加元素,用insert()
方法,name.insert(1,'Jack')
,1为索引号
list元素的删除
末尾删除元素,用pop()
方法,name.pop()
删除指定位置的元素,用pop()
方法,name.pop(2)
如果要把某个元素换成别的元素,直接将该值赋给对应的索引位置即可。
list也可以是一个list的元素,但是不常用。例如list = ['python','java',['C','C++'],'php']
tuple 元组
tuple和list非常类似,但是tuple一旦初始化就不能修改。元组用tuple = ()
表示,例如name = ('Tom', 'Mary', 'Lily')
。
现在,name
这个tuple不能变了,它也没有append(),insert()
这样的方法。其他获取元素的方法和list是一样的,可以正常地使用name[0],name[-1]
,但不能赋值成另外的元素。
⚠️定义一个只有1个元素的tuple时,t = (1,)
必须添加一个逗号。
使用dict和set
dict 字典
dict采用键-值(key-value)存储,具有极快的查找速度,在其他语言中也称为map。dict如下:
dict采用key-value存储方式,在放进去的时候,必须根据key算出value的存放位置,这样,取的时候才能根据key直接拿到value。
dict的添加
通过key放入,d['Bob']=60
dict中的key和value是一一对应的,多次对同一个key放入不同的value,后面的值会把前面的值冲掉,这是需要注意的地方。
如果key不存在,dict就会报错:
要避免key不存在的错误,有两种方法。1⃣️是通过in
判断key是否存在;2⃣️是通过dict提供的get()
方法。如果key不存在,可以返回None
,或者自己指定的value:
dict的删除
要删除一个key,用pop(key)
方法,对应的value也会从dict中删除。
⚠️注意,dict内部存放的顺序和key放入的顺序是没有关系的。
set
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
要创建一个set,需要提供一个list作为输入集合:
重复元素在set中自动被过滤:
set的添加使用add(key)
,删除使用remove(key)
小结
可变对象与不可变对象
dict的key必须是不可变对象。因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法(Hash)。在Python中,字符串、整数等都是不可变的,可以作为key,而list是可变的不能作为key。
str是不变对象,而list是可变对象。
可变对象: