Python,找出列表中的同名项,并将其打印

这个是列表:[[2001, '张三', 88.5], [2002, '李四', 78.0], [2003, '王老五', 67.2], [2004, '白冰冰', 87.0], [2005, '赵晓静', 78.0], [2006, '李四', 84.0], [2007, '张诗萌', 79.9], [2008, '白冰冰', 92.3]]
求解决

img


L = [[2001, '张三', 88.5], [2002, '李四', 78.0], [2003, '王老五', 67.2], [2004, '白冰冰', 87.0], [2005, '赵晓静', 78.0], [2006, '李四', 84.0], [2007, '张诗萌', 79.9], [2008, '白冰冰', 92.3]]
flag = [0 for i in range(len(L))]
for i in range(len(L)):
    for j in range(i+1,len(L)):
        if L[i][1]==L[j][1]:
            flag[i]=1
            flag[j]=1
##            print(L[i])
for i in range(len(L)):
    if flag[i]==1:
        print(L[i])

有用的话,记得采纳一下


student_list = [[2001, '张三', 88.5], [2002, '李四', 78.0], [2003, '王老五', 67.2], [2004, '白冰冰', 87.0], [2005, '赵晓静', 78.0], [2006, '李四', 84.0], [2007, '张诗萌', 79.9], [2008, '白冰冰', 92.3]]

# 创建一个空字典,用于存储同名项
name_dict = {}

# 遍历列表
for item in student_list:
    # 获取名字
    name = item[1]
    # 如果名字在字典中不存在,则将名字作为字典的键,并将该项添加到字典的值中
    if name not in name_dict:
        name_dict[name] = [item]
    # 如果名字已经存在,则将该项添加到字典的值中
    else:
        name_dict[name].append(item)

# 遍历字典,打印出所有同名项
for name, items in name_dict.items():
    if len(items) > 1:
        print(f"同名项:{name}")
        for item in items:
            print(item)
        print()