序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
列表的增、删、改、查
序号 | 方法 |
---|---|
1 | list.append(obj) 在列表末尾添加新的对象 |
2 | list.count(obj) 统计某个元素在列表中出现的次数 |
3 | list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
4 | list.index(obj) 从列表中找出某个值第一个匹配项的索引位置 |
5 | list.insert(index, obj) 将对象插入列表 |
6 | list.pop([index=-1]]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 |
7 | list.remove(obj) 移除列表中某个值的第一个匹配项 |
8 | list.reverse() 反向列表中元素 |
9 | list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序 |
10 | list.clear() 清空列表 |
11 | list.copy() 复制列表 |
举例:
增加
两个列表可以进行相加
运行结果是:
两个列表相加
运行结果是:
插入
如果超出了元素个数,则直接在尾部追加,如果没超出,则在指定位置增加
运行结果是:
两个序列值合并
此操作其实就是extend对for in 进行了一个封装
运行结果是:
删除
方法有三种,del和pop和remove
del是整个列表都删除,或者利用切片删除区间
pop是删除某一个下标。
remove是删除重复项,只删除第一个匹配项
举例1:
运行结果是抛异常,因为已经被删除
举例2:
运行结果是删除下标为2以后的值
举例3:
运行结果是删除下标为2的值
举例4:
运行结果是只删除了第一个匹配的重复值
查找
index是返回查找的下标,不存在则抛异常
find也是返回查找的下标,不存在则返回-1
举例1:
运行结果是:即使有2个3,也是默认最近的值坐标
Python列表函数&方法
Python包含以下函数:
序号 | 函数 |
---|---|
1 | len(list) 列表元素个数 |
2 | max(list) 返回列表元素最大值 |
3 | min(list) 返回列表元素最小值 |
4 | list(seq) 将元组转换为列表 |
dir是将一个数据类型的所有函数和属性输出
举例1:
运行结果是
__len__()类型的__类型的函数代表私有函数,只有这个类自己可以访问,一般不调用。
len()是全局调用,是外部调用,两者打印效果都是一样的。
sort 按照ASCII码大小默认排序。也可以自己定义排序规则。
定义排序规则方法:
举例1:
运行结果是
reverse 反向列表中的元素
运行结果是
清空 clear
运行结果是
复制 copy
管理通讯系统
# 通讯录管理系统 # 1.增加姓名和手机号 # 2.删除姓名 # 3.修改手机 # 4.查询所有用户 # 5.根据姓名查找手机号 # 6.退出 names=['张三'] phones=['123'] print('欢迎什么什么什么') while(True): print('======通讯录管理系统========') print('1.增加姓名和手机') print('2.删除姓名') print('3.修改手机') print('4.查询所有用户') print('5.根据姓名查找手机号') print('6.退出') print('=================') i=int(input('请选择:')) if(i==1): name=input('请输入姓名:') phone=input('请输入电话:') while phone in phones: phone=input('电话已存在,请重新输入:') names.append(name) phones.append(phone) print('录入成功') elif i==2: name = input('请输入姓名:') if name in names: index=names.index(name) names.pop(index) phones.pop(index) print('删除成功') else: print('名字不存在') elif i==3: phone =input(('请输入手机号')) if phone in phones: new_phone = input('请输入新的手机号:') while new_phone in phones: new_phone = input('新的电话已存在,请输入新号码') index= phones.index(phone) phones[index]=new_phone print('更新成功') else: print('电话不存在') elif i==4: for i in range(names.__len__()): print(names[i],phones[i]) print('输出完毕') elif i==5: name=input('请输入姓名:') if name in names: index = names.index(name) print('电话:',phones[index]) else: print('名字不存在') elif i==6: print('谢谢使用') break