列表,元组操作
定义列表
#!/usr/bin/env python # -*- coding:utf-8 -*- names = ["user1","user2","user3","user4"]
通过下标访问列表中的元素,下标从0开始计数
print(names[2]) #通过下标访问列表中的元素
>>user3
print(names[-1]) #取列表最后一位
>>user4
切片:取多个元素
print(names[0:2]) #取下标0至下标2之间的数字,包括0,不包括2 >>['user1', 'user2'] print(names[:2]) #楼上的简写 >>['user1', 'user2'] print(names[-2:]) #取列表的最后2个值 >>['user3', 'user4'] print(names[0:-1:2]) #按照步长打印列表 >>['user1', 'user3'] print(names[::2]) #楼上的简写 >>['user1', 'user3']
追加
names.append("我是新来的") print(names) >>['user1', 'user2', 'user3', 'user4', '我是新来的']
插入
names.insert(1,"强行user2前面插入") names.insert(4,"在user3后面插入") print(names) >>['user1', '强行user2前面插入', 'user2', 'user3', '在user3后面插入', 'user4', '我是新来的']
修改
names ['user1', '强行user2前面插入', 'user2', 'user3', '在user3后面插入', 'user4', '我是新来的'] names[1] = "该换人了" print(names) >>['user1', '该换人了', 'user2', 'user3', '在user3后面插入', 'user4', '我是新来的']
删除
names ['user1', '该换人了', 'user2', 'user3', '在user3后面插入', 'user4', '我是新来的'] names.remove("我是新来的") #删除指定元素 print(names) >>['user1', '该换人了', 'user2', 'user3', '在user3后面插入', 'user4'] del names[1] #按照下标位置删 print(names) >>['user1', 'user2', 'user3', '在user3后面插入', 'user4', '我是新来的'] names.pop() #删除列表最后一个值 print(names) >>['user1', '该换人了', 'user2', 'user3', '在user3后面插入', 'user4']
获取下标
names ['user1', '该换人了', 'user2', 'user3', '在user3后面插入', 'user4', '我是新来的'] print(names.index("user1")) #找到user1的下标 >>0
统计
names ['user1', '该换人了', 'user2', 'user3', '在user3后面插入', 'user4', 'user2', '我是新来的'] print(names.count("user2")) #统计有几个user2 >>2
扩展
names ['user1', '该换人了', 'User2', '#user3', '在user3后面插入', 'user4', '2user2', '我是新来的'] names2 = [1,2,3,4,5] names.extend(names2) #把nemes2添加到names中 print(names) >>['user1', '该换人了', 'User2', '#user3', '在user3后面插入', 'user4', '2user2', '我是新来的', 1, 2, 3, 4, 5]
拷贝
names ["user1","User2","#user3",["user5","user6"],"user4","2user2"] names2 = names.copy() #浅copy,只copy列表第一层,第二层以后的列表继续跟原列表同步 names[1] = "用户1" #更改原列表的第一层的内容,之前被copy的列表不会发生变化 names[3][0] = "用户5" #更改原列表第二层的内容,之前被copy的列表会发生变化 print(names) print(names2) ['user1', '用户1', '#user3', ['用户5', 'user6'], 'user4', '2user2'] ['user1', 'User2', '#user3', ['用户5', 'user6'], 'user4', '2user2'] 深copy import copy names2 = copy.deepcopy(names) #把内容完全copy出来,形成一个独立的列表 names[1] = "用户1" names[3][0] = "用户5" print(names) print(names2) ['user1', '用户1', '#user3', ['用户5', 'user6'], 'user4', '2user2'] ['user1', 'User2', '#user3', ['user5', 'user6'], 'user4', '2user2']
循环打印列表
names names = ["user1","User2","#user3",["user5","user6"],"user4","2user2"] for i in names: print(i) user1 User2 #user3 ['user5', 'user6'] user4 2user2
其他
names ['user1', '该换人了', 'user2', 'user3', '在user3后面插入', 'user4', 'user2', '我是新来的'] names.clear() #清空列表 print(names) [] names.reverse() #列表内容翻转 print(names) ['我是新来的', 'user2', 'user4', '在user3后面插入', 'user3', 'user2', '该换人了', 'user1'] names ['user1', '该换人了', 'User2', '#user3', '在user3后面插入', 'user4', '2user2', '我是新来的'] names.sort() #排序,默认按照 特殊符号>数字>大写字母>小写字母 print(names) >>['#user3', '2user2', 'User2', 'user1', 'user4', '在user3后面插入', '我是新来的', '该换人了']
元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
names = ("user1","user2") print(names.count("user1")) #统计元组中有几个user1 print(names.index("user2")) #查看user2的下标