今天,我们对列表的一些相关知识进行了补充:
1.列表赋值
a.直接使用一个列表变量给另一个列表变量赋值,赋的是地址。
赋值完成后,对其中一个列表进行增删查改,会影响另一个列表
b.如果赋值的时候赋的是列表的切片或者拷贝,会产生新的地址,然后使用新的地址赋值。
赋完值之后,两个列表相互之间不影响
2.关于列表中的方法
(1).列表.count(元素) - 获取指定元素在列表中出现的次数
(2).列表.extend(序列) - 将序列中所有的元素都添加到列表中
3.列表.index(元素) - 获取指定元素的下标,
注意:
a.如果元素在列表中有多个,只获取第一个的下标
b.如果元素在列表中不存在,会报错:ValueError: 100 is not in list
4.列表.reverse() - 反向列表(将列表元素倒序)
5.列表.sort() - 对列表进行升序排序(从小到大)
列表.sort(reverse=True) - 对列表进行降序排序(从大到小)
注意:列表的要求:
a.列表的元素类型必须一样
b.元素支持比较运算符
6.列表.clear() - 清空列表
7.列表.copy() - 将列表中元素直接复制一份产生一个新的列表。
和列表[:]效果一样
注意:这儿的拷贝是浅拷贝
涉及到了浅拷贝和深拷贝的知识,接下来就讲解一下相关内容:
copy.copy(对象) - 浅拷贝(直接拷贝元素的值产生一个新的地址,如果某个元素的值是一个地址,也只拷贝地址)
copy.deepcopy(对象) - 深拷贝(拷贝元素的值产生一个新的地址,如果某个元素的值是一个地址,则会继续深入拷贝地址中的元素)
元祖的相关知识:
1.什么是元祖(tuple)
元祖就是不可变的列表。(有序,不可变)
有序 - 可以通过下标获取元素
不可变 - 不支持增、删、改的操作
2.元祖的字面量:通过小括号将多个元素括起来,多个元素之间用逗号隔开
a.只有一个元素的元祖,在元素的后面必须加一个逗号
b.直接将多个数据用逗号隔开,不用括号括起来,还是一个元祖值(很常用)
c.获取元祖元素,可以通过变量个数和元祖个数保持一致来获取元组中的每个个数
3.通过在变量名前加*,获取没有被*的变量包含的剩下的元素,以列表形式返回
4.获取元祖的元素和获取列表元素的方式完全相同
5.相关运算和列表完全相同
+, *, in/not in, len(), tuple(), max(), min()
6.元祖相关的方法:只有列表中的count和index才有效
字典的相关知识:
1.什么是字典(dict)
字典是python中内置的容器类的数据类型,是可变的,无序的。字典的元素是键值对
2.字典的字面量:用大括号括起来,大括号中是键值对,多个键值对之间用逗号隔开
键值对 - 键:值
键(key) - 不可变的;唯一的(一般使用字符串)
值(value) - 无要求,任何类型的数据都可以作为值
什么时候用字典:
如果一个容器中存储的数据是不同意义的数据(数据之间需要区分),就使用字典
字典的增删改查:
1.查(获取字典的值)
a.获取单个值
字典[key] - 获取字典中key对应的值(如果key不存在,会报错)
字典。get(key) - 获取字典中key对应的值(如果key不存在,不会报错,并返回默认值None)
None是python中的一个关键字,表示一个特殊值(没有、空)
b.遍历
直接遍历字典拿到的是字典中的key
for keyin dog1:
print(key, dog1[key])
2.增(添加键值对)
字典[key] = 值 - 当key不存在的时候,就是在字典中添加键值对
字典1.update(序列) - 将序列中的元素转换成键值对,然后再添加到字典1中
注意:这儿的序列要求是能够转换成字典的序列。序列中的元素是只有两个元素的小序列
当key值有重名的时候,会用序列中键值对对应的值,更新原字典的key对应的值
dict1.update({'aa':10, 'bb':20, 'a':'abc'})
print(dict1)
3.改(修改key对应的值)
字典[key] = 值 - 当key存在的时候,就是修改字典中的键值对
4.删(删除键值对)
a. del 字典[key] - 删除字典中key对应的键值对
b.字典.pop(key) - 取出字典中key对应的值(删除整个键值对)
删除最后一个键值对(取出最后一个键值对,以元祖的形式返回)
以上就是今天学习的内容,主要是定义和关键字较多,需要多多记忆,继续加油吧!