首页 > 解决方案 > 用相同的时间过滤一个带有itens的列表,并在Python中只放一个

问题描述

我在 Python 中有一个包含多个项目的列表,并且该列表是随机生成的,这是一个示例:

['12:01;Jhon',
 '13:25;Charlie',
 '14:00;Joshua', 
 '12:01;Dean', 
 '15:04;Derek',
 '14:58;George',
 '12:01;Wilson',
 '15:04;Marcus'] 

我需要生成一个新列表,选择相同小时的第一个项目,并让不同小时的项目:

['12:01;Jhon',
 '13:25;Charlie',
 '14:00;Joshua',
 '15:04;Derek',
 '14:58;George']

解释新列表:Jhon 是第一个 12:01 的项目,所以它在新列表中,并且删除了 Dean 和 Wilson,因为他们也有 12:01。Joshua 和 George 包含在列表中,因为他们的工作时间与其他人不同。Derek 是第一个有 15:04 的项目,将 Marcus 从列表中删除,因为他有 15:04。

标签: pythonarrayslist

解决方案


只是一个简短的dict解决方案:

d = {}
for s in lst:
    d.setdefault(s[:5], s)
result = list(d.values())

在线尝试!


推荐阅读