一、 特点
-
列表中的数据按顺序排列
-
列表有正序和倒序两种索引
正序下标从0开始
倒序下标从-1开始 -
可以存储任意类型,且允许重复
二、方法
# 列表的创建
# 变量名 = [元素1,元素2,……]
list1 = ['a','b','c',1,2,3,3,4]
print(list1) # 输出:['a', 'b', 'c', 1, 2, 3, 3, 4]
# 空列表是很有用的,可以不断的往里面加数据
list2 = []
print(list2) # 输出:[]
- 常用
- list.index([指定元素])
返回指定元素第一次出现时的索引值
# 列表的取值
list1 = ["张三","李四","王五","赵六","钱七","孙八"]
print(list1)
# 输出:['张三', '李四', '王五', '赵六', '钱七', '孙八']
# 输出:赵六
print(list1[3])
print(list1[-3])
# 范围取值:列表变量 = 原列表变量[起始索引 : 结束索引]
# Python中列表范围取值是“左闭右开”
list2 = list1[1 : 4]
print(list2) # 输出:['李四', '王五', '赵六']
# 列表的index函数用于获取指定元素第一次出现的索引值
index = list1.index("李四")
print(index)
- len(列表名)
获取列表长度 - list.reverse():反转
- list.sort():排序,默认升序
List.sort(reverse = True):降序
# 列表的反转与排序
persons = ["张三","李四","王五","赵六","钱七","孙八"]
numbers = [23,25,22,10,18,6]
# 反转列表
persons.reverse()
print(persons)
# 输出:['孙八', '钱七', '赵六', '王五', '李四', '张三']
# 对列表进行排序:默认为升序排列,sort(reverse=True)代表降序排列
numbers.sort()
print(numbers)
# 其他常用方法
persons = ["张三","赵六","李四","王五","赵六","钱七","孙八"]
- list.count([指定元素]):获取指定元素出现次数
# 获取指定元素出现次数
cnt = persons.count("赵六")
print(cnt) # 输出:2
- list.expend([指定列表]):将列表中的元素追加到列表末尾
# 追加操作
# append是将整个列表追加至末尾,extend则是将列表中的元素追加到列表末尾
persons.append(["杨九","吴十"])
print(persons)
# 输出:['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八', ['杨九', '吴十']]
persons.extend(["杨九","吴十"])
print(persons)
# 输出:['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八', ['杨九', '吴十'], '杨九', '吴十']
- in:判断元素是否存在
# in:用于判断数据在列表中是否存在,存在返回True,反之返回False
is_exist = "张三" in persons
print(is_exist) # 输出:True
- list.copy():复制列表
# copy:用于复制表 注意:person1与person不是同一个对象
persons1 = persons.copy()
persons2 = persons
print(persons1)
is_same = persons1 is persons
print(is_same) # 输出:False
is_same = persons2 is persons
print(is_same) # 输出:True
- list.clear():清空列表
# clear:清空列表
persons.clear()
print(persons)
# 输出:[]
print(persons1)
# 输出:['张三', '赵六', '李四', '王五', '赵六', '钱七', '孙八', ['杨九', '吴十'], '杨九', '吴十']
print(persons2)
# 输出:[]
- 增删改
# 列表的写操作
persons = ["张三","李四","王五","赵六","钱七","孙八"]
- list.append(新元素)
在列表末端添加 - list.insert(索引,新元素)
在指定索引处加入新元素
# 列表的追加
persons.append("杨九")
print(persons)
# 输出:['张三', '李四', '王五', '赵六', '钱七', '孙八', '杨九']
# 列表的插入
persons.insert(2,"刘二")
print(persons)
# 输出:['张三', '李四', '刘二', '王五', '赵六', '钱七', '孙八', '杨九']
persons.insert(len(persons),"候大") # 实现了追加的效果
print(persons)
# 输出:['张三', '李四', '刘二', '王五', '赵六', '钱七', '孙八', '杨九', '候大']
-
list[索引值] = 新值
更新指定索引处的数据 -
list[起始索引 : 结束索引] = 新列表
更新指定范围数据
# 列表的更新
persons[2] = "宋二"
print(persons)
# 输出:['张三', '李四', '宋二', '王五', '赵六', '钱七', '孙八', '杨九', '候大']
# 更换列表范围内的值(注意左闭右开)
persons[3 : 5] = ["赵六","王五"]
print(persons)
# 输出:['张三', '李四', '宋二', '赵六', '王五', '钱七', '孙八', '杨九', '候大']
- list.remove(元素)
删除指定元素 - list.pop(索引)
按索引删除指定元素
# 列表的删除
persons.remove("宋二")
print(persons)
# 输出:['张三', '李四', '赵六', '王五', '钱七', '孙八', '杨九', '候大']
# 按索引值删除元素
persons.pop(4)
print(persons)
# 输出:['张三', '李四', '赵六', '王五', '孙八', '杨九', '候大']
# 利用更改操作达到删除效果
persons[4 : 6] = []
print(persons)
# 输出:['张三', '李四', '赵六', '王五', '候大']
三、 遍历列表
for…in(专门用于遍历列表)
for 迭代变量 in 可迭代对象
# 遍历列表
persons = ["张三","李四","王五","赵六","钱七","孙八"]
# for循环遍历列表
# for 迭代变量 in 可迭代对象
i = 0
# 获取列表长度:len(str)
length = len(persons)
for p in persons:
if p == "李四":
#获取倒序下标
ri = length * -1 + i
print(p , i , ri)
i += 1
# 输出:李四 1 -5
四、 循环体
while循环遍历
通过遍历下标
# while循环遍历列表
i = 0
while i < len(persons):
p = persons[i]
if p == "李四":
# 获取倒序下标
ri = length * -1 + i
print(p, i, ri)
i += 1
# 输出:李四 1 -5
五、多维列表(嵌套列表)
# 多维列表(嵌套列表)
# [[姓名,年龄,工资],[姓名,年龄,工资],[姓名,年龄,工资]]
# str = "张三,30,2000"
# l = str.split(",")
# print(l)
# 输出:['张三', '30', '2000']
emp_list = []
while True:
info = input("请输入员工信息:")
if info == "":
print("程序结束")
break
info_list = info.split(",")
print(len(info_list))
if len(info_list) != 3:
print("输入格式不正确,重新输入!")
continue
emp_list.append(info_list)
for emp in emp_list:
print("姓名:{},年龄:{},工资:{}".format(emp[0],emp[1],emp[2]))