不使用any或导入工具,实现含关联时间的姓名列表去重
解决姓名与时间绑定去重的问题
首先修正你原代码里的一个错误:range(len(name[i]))应该改为range(len(name)),否则循环范围会出错。
要实现姓名和对应时间绑定去重,且不使用any或额外工具库,你需要手动遍历二维列表检查姓名是否已存在,具体代码如下:
name = ["Michael", "Helen", "Mike", "Joe", "Michael"] time = ["08:42:39", "08:39:56", "08:58:43", "09:04:03", "05:32:54"] norepeat_list = [] for i in range(len(name)): # 标记当前姓名是否已存在于去重列表中 exists = False # 遍历已有的去重项,检查姓名 for item in norepeat_list: if item[0] == name[i]: exists = True break # 找到匹配项后直接终止内层循环 if not exists: # 姓名不存在时,添加姓名与时间的组合 norepeat_list.append([name[i], time[i]]) # 输出结果 for item in norepeat_list: print(item)
代码说明
- 用
exists变量记录当前姓名是否已存在,初始设为False。 - 内层循环遍历
norepeat_list的每个子项,对比子项的第一个元素(姓名)与当前遍历的name[i],找到匹配项就把exists设为True并跳出内层循环,避免不必要的遍历。 - 若
exists仍为False,说明该姓名未被添加过,就将[姓名, 时间]的组合添加到norepeat_list中。
运行后得到的norepeat_list就是包含唯一姓名对应时间的二维列表:[["Michael", "08:42:39"], ["Helen", "08:39:56"], ["Mike", "08:58:43"], ["Joe", "09:04:03"]]
内容的提问来源于stack exchange,提问作者FractalsAndFractures
相关产品推荐
相关产品推荐

