列表list

数据类型int整型  float浮点数  bool布尔值  str字符串  list列表  tuple元组  dict字典  set集合

  可变数据类型:
    字典、列表、集合、自定义的对象等
  不可变数据类型:
    数字、字符串、元组、function等

list(可变数据类型)

列表:高级数组

概念:
  存储多个数据(多个数据可以是任意类型)

定义形式:
  scores = [89,99,35,5,23,100]
  names = ["东方月初","王权富贵"]

访问:
  索引值(like str)
list_name = ["张楚岚", "张灵玉", "诸葛青","王也道长"]

# 访问第一个《一人之下》名字
print("第一个人的名字:%s" % list_name[0])
# 第一个人的名字:张楚岚

# 访问最后一个《一人之下》名字
print("最后一个人的名字:%s" % list_name[-1])
# 最后一个人的名字:王也道长
print("最后一个人的名字:%s" % list_name[len(list_name) - 1])
# 最后一个人的名字:王也道长
遍历列表(while循环、for循环)
list_name = ["张楚岚", "张灵玉", "诸葛青","王也道长"]

# 如何打印列表中所有的数据(遍历)
# 1.使用 while循环
i = 0
print("使用while遍历列表中的元素:")
while i < len(list_name):
    print(list_name[i], end="\t")
    i += 1

# 2.使用第一种 for循环
print("\n使用第一种for遍历列表中的元素:")
for i in range(len(list_name)):
    print(list_name[i], end="\t")

# 3.使用第二种 for循环
print("\n使用第二种for遍历列表中的元素:")
for name in list_name:
    print(name,end="\t")

操作列表常用的方法

1.增(append、insert、extend)

append()
  通过append向指定列表添加元素(默认在最后插入元素)

insert()
  在指定索引值的位置,插入新的元素(指定插入元素的位置)

extend()
  将另外一个列表中所有的元素,逐个插入到指定列表中
# ---------------插入操作-------------------
# 创建一个空列表
names = []
# append添加元素,只能实现往后插入元素
names.append("王权霸业")
names.append("东方淮竹")
print("names = ",names)

# insert在指定索引的得位置,插入新的元素
names.insert(0,"《狐妖小红娘》")
print("names = ",names)

# extend将另外一个列表中所有的元素,逐个插入到指定列表中
names2 = ["东方月初","涂山红红"]
names.extend(names2)
print("names = ",names)

2.删(del、pop、remove、clear)

del()
  根据下标进行删除

pop()
删除最后一个元素

remove()
根据元素的值进行删除

clear()
删除列表里的所有元素,返回一个空列表
# ---------------删除操作-------------------
names = ["《狐妖小红娘》","王权霸业","东方淮竹","东方月初","涂山红红","淮竹虽为妾,霸业为娶妻"]

# remove 只能按元素的值进行删除
names.remove("淮竹虽为妾,霸业为娶妻")
print("names = ",names)

# pop 默认删除最后一个元素,也可以按索引值进行删除
names.pop()
print("names = ",names)
# names.pop(0)
# print("names = ",names)

# del 按索引值进行删除,也可以删除整个列表
del names[3]
print("names = ",names)
# del names
# 删除 names列表,不光是删除列表里的元素,列表都删除来了

# clear 删除列表里的所有元素,返回一个空列表
names.clear()
print("names = ",names)

3.改

二次赋值的时候,新值覆盖旧值
list[index] = "要修改的内容"
# ---------------修改操作-------------------
names = ["《狐妖小红娘》","王权霸业","东方淮竹","东方月初","涂山红红"]

# 二次赋值的时候,新值覆盖旧值
names[4] = "王权富贵"
print("names = ",names)

4.查(index、count、in、not in )

index()
查找指定元素的值,在列表中的索引值(如果有,返回索引值,没有则报错 ValueError)

count()
计算指定元素出现的次数(如果有,返回出现的次数,没有则返回0)

in
返回bool值,True/False

not in
返回bool值,True/False
# ---------------查询操作-------------------
names = ["《狐妖小红娘》","王权霸业","东方淮竹","东方月初","涂山红红"]

# index查找指定元素的值,在列表中的索引值
print("列表元素\"东方月初\"的索引值:",names.index("东方月初"))

# count计算指定元素出现的次数
print("列表元素\"东方月初\"的出现的次数:",names.count("东方月初"))

# in 与 not in 
print("列表元素\"东方月初\"的是否在列表里面:","东方月初" in names)
print("列表元素\"东方月初\"的是否不在列表里面:","东方月初" not in names)

5.列表中元素的排序

sort()

  1>按自然顺序(从小到大)进行排序

2>对原数据直接进行排序操作,不会生成新的备份

3>sort 中默认从小到大进行排序(如果reverse = True,则从大到小进行排序)
list1 = [98,20,100,66,88,10,90]
# 按自然顺序(从小到大)进行排序
list1.sort()
print("list1 = ",list1)

# sort 中reverse,从大到小进行排序
list2 = [98,20,100,66,88,10,90]
list2.sort(reverse=True)
print("list2 = ",list2)

案例:做一个学生信息管理系统,用列表存储学生信息
存储学生信息:
students = [[],[],[]]
硬性要求:
1.添加学生功能
2.展示所有学生信息功能
3.退出功能

项目: 学生管理系统v1.0

欢迎光临学生管理系统v1.0:
1.添加学生
2.查找学生
3.展示所有
4.删除学生
5.修改学生
6.退出系统
# 用来存储所有学生信息
students = []

# # 添加学生的逻辑
def append_stu():
    name = input("请输入学生姓名:")
    score = int(input("请输入学生分数:"))
    # 存储单个学生信息
    student = [name,score]
    # 将学生添加到学生列表中
    students.append(student)
    print("添加成功!")

# # 查看所有学生的逻辑
def show_stu():
    print("所有学生信息如下:")
    for sub_students in students:
        for list_stu in sub_students:
            print(list_stu,end="\t")
        print()

# # 修改学生信息的逻辑
def update_stu():
    name_1 = input("请输入要修改的学生姓名:")
    # 用index 记录是否查找到学生姓名
    index = -1
    # 遍历列表中所有的子列表,判断是否包含要查找的名字
    for i in range(len(students)):
        if name_1 in students[i]:
            # 当找到匹配的学生姓名,用index记录名字所在列表的索引值
            index = i
            break
    if index == -1:
        print("很遗憾,学生信息里没有您要修改的学生名字:%s,请核对后再次操作..."%name_1)
    else:
       # 找到要修改的数据,并进行后续修改操作
        new_name = input("请输入新的学生姓名:")
        students[index][0] = new_name
        new_score = int(input("请输入修改后的分数:"))
        students[index][1] = new_score
        print("修改成功!")

# # 查找学生信息的逻辑
def inquire_stu():
    name_2 = input("请输入要查找的学生姓名:")
    # 用index记录是否能查找到学生姓名
    index = -1
    # 遍历列表中所有的子列表,判断是否包含要查找的名字
    for i in range(len(students)):
        if name_2 in students[i]:
            # 当找到匹配的学生姓名,用index记录名字所在列表的索引值
            index = i
            break
    if index == -1:
        print("很遗憾,学生信息里没有您要查找的学生名字:%s,请核对后再次操作..."%name_2)
    else:
        # 找到要查找的数据,并进行后续操作
        print("学生姓名:{0}\t分数:{1}".format(students[index][0],students[index][1]))

# # 删除学生信息的逻辑
def delete_stu():
    name_3 = input("请输入要删除的学生姓名:")
    # 用index记录是否能查找到要删除的学生姓名
    index = -1
    # 遍历列表中所有的子列表,判断是否包含要删除的名字
    for i in range(len(students)):
        if name_3 in students[i]:
            # 当找到匹配的学生姓名,用index记录名字所在列表的索引值
            index = i
            break
    if index == -1:
        print("很遗憾,学生信息里没有您要删除的学生名字:%s,请核对后再次操作..." % name_3)
    else:
        # 找到要删除的数据,并进行后续修改操作
        del students[index]
        print("删除成功!")


while True:
    print("--------------- 欢迎光临学生管理系统v1.0 ---------------")
    print("1.添加学生")
    print("2.查找学生")
    print("3.展示所有")
    print("4.删除学生")
    print("5.修改学生")
    print("6.退出系统")
    # 输入指令开关
    switch_input = True
    while switch_input:
        choice = input("请您选择1-6要执行的操作:")
        if choice >= "1" and choice <= "6":
            switch_input = False
        else:
            print("输入指令有误,请按照提示重新输入...")
    #根据键盘录入的指令,进行后续操作
    if choice == "1":
        # 添加学生的逻辑
        append_stu()
    elif choice == "2":
        # 查找学生的信息
        inquire_stu()
    elif choice == "3":
        # 查看所有学生的逻辑
        show_stu()
    elif choice == "4":
        # 删除学生的信息
        delete_stu()
    elif choice == "5":
        # 修改学生的逻辑
        update_stu()
    else :
        print("感谢您的使用,下次再见...")
        break
 
 

 

 
 
posted @ 2020-10-25 14:55  马铃薯1  阅读(153)  评论(0编辑  收藏  举报