1、list定义
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] print(names) print(type(names)) 结果: ['刘德华', '张学友', '陈慧琳', '林心如', '周杰伦', '李宇春'] <class 'list'>
name = ('兰陵王','东皇太一','王昭君','程咬金') print(type(name)) #输出的元祖:<class 'tuple'> print(type(list(name))) #转换后输出的为list: <class 'list'> 结果: <class 'tuple'> <class 'list'>
2、list增加元素 三种方法:append insert extend
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] names.append('孙悟空') #从尾部插入元素 print(names) 结果: ['刘德华', '张学友', '陈慧琳', '林心如', '周杰伦', '李宇春', '孙悟空']
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] names.insert(3,'猪八戒') #指定位置插入元素 print(names) 结果: ['刘德华', '张学友', '陈慧琳', '猪八戒', '林心如', '周杰伦', '李宇春']
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] name = ('兰陵王','东皇太一','王昭君','程咬金') names.extend(name) #这个方法其实就两个list合并 print(names) 结果: ['刘德华', '张学友', '陈慧琳', '林心如', '周杰伦', '李宇春', '兰陵王', '东皇太一', '王昭君', '程咬金']
3、list删除元素的三种方法:pop remove clear
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] print(names.pop(3)) #删除指定下标元素,默认删除最后一个,返回被删除的数据。 print(names) 结果: 林心如 ['刘德华', '张学友', '陈慧琳', '周杰伦', '李宇春']
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] names.remove('刘德华') #删除指定元素,元素不存在报错,无返回值。 print(names) 结果: ['张学友', '陈慧琳', '林心如', '周杰伦', '李宇春']
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] names.clear() # 这个方法其实是清空所有元素。 print(names) 结果: []
4、list 修改元素
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] names[1] = '哈哈' print(names) 结果: ['刘德华', '哈哈', '陈慧琳', '林心如', '周杰伦', '李宇春']
5、list查找元素 下标、切片、index、count。 切片详细:https://blog.csdn.net/cyz141001/article/details/111568823
下标获取数据
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] print(names[1]) #获取从0开始1元素 结果: 张学友
获取元素下标 index
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] print(names.index('周杰伦')) #查找字符串的位置,不存在报错。 结果: 4
获取元素个数 count
names = ['林心如','刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春','林心如'] print(names.count('林心如')) #返回list中相同元素个数,无则返回0 结果: 3
6 list使用成员运算符,与反转元素
成员运算符:存在返回True,不存在返回False
names = ['林心如','刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春','林心如'] print('李宇春' in names) #存在返回True,不存在返回False 结果: True
反转元素:将元素反向,就是倒序
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] print(names[::-1]) #将元素反向,就是倒序 结果: ['李宇春', '周杰伦', '林心如', '陈慧琳', '张学友', '刘德华']
names = ['刘德华','张学友','陈慧琳','林心如','周杰伦','李宇春'] names.reverse() #将元素反向,就是倒序 print(names) 结果: ['李宇春', '周杰伦', '林心如', '陈慧琳', '张学友', '刘德华']
7 、list列表排序 两中方法:sort sorted
sort :直接对列表排序,正序,反序需要加(reverse=True)默认值:False
b = [6,5,3,1,8,7,2,4] b.sort() #直接对列表排序,正序,反序需要加(reverse=True)默认值:False print(b) 结果: [1, 2, 3, 4, 5, 6, 7, 8]
sorted: 排序后返回新的list,原list不变。
b = [6,5,3,1,8,7,2,4] d = sorted(b) #排序后返回新的list,原list不变。 print(d) 结果: [1, 2, 3, 4, 5, 6, 7, 8]
8、list拷贝:复制一份list,创建新地址,于原数据不受影响。
浅拷贝:一级列表,如果有二级列表还是关联着
b = [6,5,3,1,8,7,2,4] a = b.copy() #复制一份list,创建新地址,于原数据不受影响。 print(a) print(b) a.sort() print(a) print(b) 结果: [6, 5, 3, 1, 8, 7, 2, 4] [6, 5, 3, 1, 8, 7, 2, 4] [1, 2, 3, 4, 5, 6, 7, 8] [6, 5, 3, 1, 8, 7, 2, 4]
深拷贝:不管是一级还是二级真正的创建新地址拷贝,需要导入包,import copy
方法:copy.deepcopy()
9、列表遍历
for遍历:
a = [1,2,3,4,5,6,7,8] for i in a : print(i)
while遍历:
a = [1,2,3,4,5,6,7,8] num = 0 while num < len(a): print(a[num]) num += 1