④ 使用pop()方法删除元素:pop方法用于移出列表中的一个元素(默认是最后一个元素),可以指定元素索引,并且返回该元素的值。
使用del语句删除元素:如果知道要删除的元素在列表中的位置,可使用del语句删除元素,元素一旦被删除之后就再也无法访问。
使用remove()方法删除元素:当不知道元素索引,只知道元素值的时候,使用remove()方法删除元素。
⑤ 查询数据
in(存在),如果存在那么结果为true,否则为false
not in(不存在),如果不存在那么结果为true,否则false
⑥ 列表函数
len(list) 返回列表元素个数
list05 = ['jack', 'jane', 'joe', 'black']
# 查看列表的长度 返回列表元素
print(len(list05))
max(list):返回列表元素中的最大值。默认数值型的参数,取最大值。字符型的参数,取字母排序靠后者。
min(list):返回列表元素中的最小值。默认数值型的参数,取最小值。字符型的参数,取字母排序靠前者。
list.count(obj):统计某个元素在列表中出现的次数
extends(list):扩展列表,在一个列表的末尾一次性追加一个新的列表,参数为一个列表
list.index(obj):用于从列表中找出某一个值第一个匹配项的索引位置
list.reverse():反向列表中的元素
list.sort():对列表进行排序,该方法没有返回值。更改的是原数组
list.clear():用于清空列表
list.copy():复制列表
列表的切片
a = [1, 2, 3]
b = [11, 22, 33]
c = [111, 222, 333]
list01 = [a, b, c]
print(id(list01))
list02 = list01[:]
print(id(list02))
# 查看list01和list02
print(list01)
print(list02)
⑦元组函数
元组和列表不一样,元组中的元素值是不允许被单独修改和删除的,但是我们可以使用del语句来删除整个元组。
⑧字典
字典是另外一种可变容器类型,且可以存储任意类型对象。列表元素进行修改的话,通过所以进行修改,如果当前元素的顺序放生改变,此时还需要修改索引才能成功完成元素的修改,有没有办法,技能存储多个数据,又能很方便准确的定位元素呢:字典
dict01 = {'name': 'joe', 'age': '19', 'address': '上海'}
print(dict01)
print(dict01['name'])
访问下标['name'],中括号指得是下标而不是列标
修改字典元素,通过找到指定的KEY进行修改
dict01['name'] = 'jack'
print(dict01)
追加元素,直接添加一个原字典中没有的元素
dict01['hobby'] = '足球'
print(dict01)
删除元素也可已删除整个字典,但此操作危险性较大,推荐清空元素
dict01 = {'name': 'joe', 'age': '19', 'address': '上海'}
del dict01['address']
print(dict01)
清空
dict01.clear()
print(dict01)
获得,如果字典中有该KEY对应的元素,就输出原来的,如果没有则输出指定的元素,但并不改变原字典中的内容
dict01 = {'name': 'joe', 'age': '19', 'address': '上海'}
print(dict01.get('sex', '男'))
print(dict01)
key in dict 如果键在字典dict里返回true,否则返回false
print(dict01.keys())
print(dict01.values())
print(dict01.items())
items返回元组,并将内容全部显示出来
⑨深拷贝和浅拷贝
可变(mutable)参数和不可变参数(immutable)参数
Python中string、tuple和number是不可变对象,而dict、list等是可变对象;不可变对象在进行重新赋值的时候,实际上是将原始值丢弃,将变量指向一个新值;可变对象的可变性实质上是指更改可变对象中的子对象,比如list中的item元素的更改。
浅拷贝:不拷贝子对象(针对子对象中的item),当子对象进行更改的时候,原始对象也会改变。常见操作:列表的切片操作[:]、list()操作、字典的copy()函数、copy()模块的copy()
深拷贝:会拷贝子对象,当对原始对象子对象进行更改的时候,原始对象不会改变。常见操作:copy模块的deepcopy()