1.append函数:将一个元素添加到列表的末尾
用法:
- list.append(new_item)
- new_item是添加进列表的新元素(成员)
- 被添加的元素只会被添加到末尾
- append是在原有列表的基础上添加的,不需要额外添加新的变量
例:
name = ['张三']
print('列表:',name)
name.append('李四') # 添加字符串
name.append((1, 2)) # 添加元组
name.append({'age': 12}) # 添加字典
name.append({'a', 'b'}) # 添加集合
print('添加新元素后:',name)
结果:
2.insert函数:将一个元素添加到当前列表的指定位置中
用法:
- list.insert(index, new_iitem)
- index:新元素的位置(数字)
- new_item:添加的新元素(成员)
- 新元素可以添加在列表中的任意位置
- 若inset传入的位置不存在,则将新元素添加到列表末尾
- 字符串、元组、列表的元素位置是从0开始计算的
例:
name = ['张三', '李四']
print('列表:', name)
name.insert(0, '赵二') # 在第一个位置添加
name.insert(1, None) # 在第二个位置添加
name.insert(10, '王五') # 位置10不存在,添加在末尾
print('添加新元素后:',name)
结果:
3.count函数:返回当前列表中某个成员的个数
用法:
- inttype = list.count(item)
- item:想查询在列表中个数的元素
- 若查询的元素(成员)不存在,返回0
- 只会检查完整元素存在的个数
例:
study = ['语文', '数学','语文', '英语']
print('列表:', study)
yuwen_number = study.count('语文') # 语文的个数
yu_number = study.count('语') # 语的个数
huaxue_number = study.count('化学') # 化学的个数
print('语文有{}个'.format(yuwen_number))
print('语有{}个'.format(yu_number))
print('化学有{}个'.format(huaxue_number))
结果:
4.remove函数:删除列表中的某个元素
用法:
- list.remove(item)
- item:列表中要删除的元素
- 若是要删除的元素不存在,会直接报错
- 若删除的元素有多个,只会删除从左到右匹配到的第一个元素
- remove函数不会返回一个新列表,而是在原有列表中进行删除
例:
study = ['语文', '数学','语文', '英语']
print('列表:', study)
study.remove('语文') # 有多个元素只会删除第一个
study.remove('英语') # 正常删除英语
print('删除部分元素后:', study)
结果:
5.del函数:将变量完全删除
例:
study = ['语文', '数学','语文', '英语']
del study # 删除变量study,后面打印这个变量会报错的
print('列表:', study)
结果:
打印会报错:提示study未被定义,因为变量已经被删除
6.reverse函数:对当前列表顺序进行反转
用法:
- list.reverse(),无需传参
例:
study = ['语文', '数学', '英语']
print('列表:{}'.format(study))
study.reverse() # 反转列表study
print('列表反转后:{}'.format(study))
结果:
7.sort函数:列表按照一定规律进行排序
用法:
- list.sort(key=None, reverse=False)
- key:参数比较
- reverse:排序规则,reverse=True降序,reverse=False升序(默认)
- 使用sort排序,列表中的元素类型必须相同,否则会报错(无法排序)
- 排序规则:中文特殊字符>中文>英文>数字>英文特殊字符,中文按照第一个汉字的拼音的首字母排序,英文按照首字母排序
- 还可使用sorted对列表排序,这个函数是任何类型的数据都可以进行排序,而sort函数只有列表类型能用
例:
name = ['张三', 'Mike', '李四', '55', '123', 'World', '$', '¥']
print('列表:{}'.format(name))
name.sort() # 使用sort函数升序
new_name1 = sorted(name) # 使用sorted函数升序
print('升序排序:{}'.format(name))
print('升序排序:{}'.format(new_name1))
name.sort(reverse=True) # 使用sort函数降序
new_name2 = sorted(name, reverse=True) # 使用sorted函数降序
print('降序排序:{}'.format(name))
print('降序排序:{}'.format(new_name2))
结果:
8.clear函数:将当前列表中的数据清空
用法:
- list.clear(),无需传参,无返回值
例:
a = ['苹果', 12, (1, 3), {1, '11'}]
print('列表长度:{}'.format(len(a)))
a.clear() # 将列表数据清空
print('清空列表中的元素后,长度为:{}'.format(len(a)))
结果:
9.copy函数:将当前列表复制一份相同的列表,新列表与旧列表内容相同,但内存空间不同
用法:
- list.copy(),无需传参,返回一个内容一样的列表
- 相比较二次赋值,二次赋值的变量与原始的变量享有相同的内存空间,copy函数获取的列表则是不同的内存空间,不同享数据变更
- copy是浅拷贝:有一个列表a,列表中的元素还是列表,当拷贝出新的列表b后,无论是a还是b内部的列表中的数据发生变化后,相互之间都会受到影响(即只能对数据结构的第一层进行拷贝)
- 深拷贝:不仅对第一层数据进行了copy,对深层的数据也进行了copy,原始变量和新变量完全不共享数据,可以使用copy.deepcopy()进行深拷贝
例:
import copy
a = [[1, 2, 3], 'a']
print('a列表:{},内存地址:{}'.format(a,id(a)))
b = a.copy() # b是浅拷贝
c = copy.deepcopy(a) # c是深拷贝
d = a # d是二次赋值
a[0].append(4) # a列表中的列表添加一个元素
a.append('b') # a列表中添加一个元素
print('a列表添加元素后:{},内存地址:{}'.format(a,id(a)))
print('b列表:{},内存地址:{}'.format(b,id(b)))
print('c列表:{},内存地址:{}'.format(c,id(c)))
print('d列表:{},内存地址:{}'.format(d,id(d)))
结果:
总结:a列表添加新元素后
- b列表,浅拷贝中,新添加的第一层元素没有添加,但是列表中列表数据有变化
- c列表,深拷贝中,a列表新添加的数据对c完全没有影响
- d列表,二次赋值中,d列表随着a列表的改变而改变
10.extend函数:将其他列表或元组中的元素导入到当前列表中
用法:
- list.extend(iterable)
- iterable:表示列表或元组,也可以是字符串,但是会将字符串中拆开再一个个添加进去
例:
a = [1, 2]
b1 = ['b1', 101]
b2 = ('b2', 102)
b3 = "b3"
print('列表:{}'.format(a))
a.extend(b1) # 添加列表
a.extend(b2) # 添加元组
a.extend(b3) # 添加字符串
print('添加新元素后:{}'.format(a))
结果: