Python 比较有序列表中的值

Python 比较有序列表中的值,python,list,amazon-web-services,beautifulsoup,Python,List,Amazon Web Services,Beautifulsoup,我用BeautifulSoup启动了一个项目,需要比较有序列表中的值。请参见下面的示例: list = [xxx, 09-11-2020, xxx, 09-13-2020,xxx, 09-09-2020, hhh, 09-10-2020, hhh, 09-11-2020, hhh , 09-15-2020, yyyy, 09-14-20-20,yyyy, 09-15-2020] 我需要一个包含以下值的新列表: [xxx, 09-13-2020, hhh, 09-15-2020, yyy, 09

我用
BeautifulSoup
启动了一个项目,需要比较有序列表中的值。请参见下面的示例:

list = [xxx, 09-11-2020, xxx, 09-13-2020,xxx, 09-09-2020, hhh, 09-10-2020, hhh, 09-11-2020, hhh , 09-15-2020, yyyy, 09-14-20-20,yyyy, 09-15-2020]
我需要一个包含以下值的新列表:

[xxx, 09-13-2020, hhh, 09-15-2020, yyy, 09-15-2020]
我将它们从小到大进行了组织,您可以使用它将列表分成几对,然后在这些对上循环查找每个键的最大日期,并将其存储在字典中(
last_val
,在下面的代码中)。这可能是进一步处理的最有用的形式

如果确实需要将其转换回交错格式,则可以将日期格式化回字符串,并使用back将数据对展平为一个iterable(
展平
,在下面的代码中)或一个列表

from datetime import datetime
from itertools import chain

from more_itertools import chunked

data = [
    'xxx', '09-11-2020', 'xxx', '09-13-2020', 'xxx', '09-09-2020', 'hhh',
    '09-10-2020', 'hhh', '09-11-2020', 'hhh', '09-15-2020', 'yyyy',
    '09-14-2020', 'yyyy', '09-15-2020',
]

last_val = {}
for key, date_str in chunked(data, 2):
    date = datetime.strptime(date_str, '%m-%d-%Y').date()
    if key not in last_val or date > last_val[key]:
        last_val[key] = date

print(last_val)

flattened = chain(*(
    (key, date.strftime('%m-%d-%Y'))
    for key, date in last_val.items()
))

print(list(flattened))


什么是
xxx
等等?看起来您有很多,并且希望删除重复项?创建一个列表将有助于实现这一点。然后您可以使用
sorted
,例如
a=[1,5,2]
->
sorted(a)
生成
[1,2,5]
谢谢。现在我有了另一个问题:“列表索引必须是整数或切片,而不是pyodbc.Row”我的代码:从dateutil导入解析器从itertools导入链从more_itertools导入chunked last_val={}对于key,date_str in chunked(prov,2):date=parser.parse(prov[date_str][1]),如果key不在last_val或date>last_val[key]:last_val[key]=date您可能需要检查过程中每个变量包含的内容,尽管这里的
prov[date\u str][1]
看起来可疑。否则,请发布一个关于如何处理从数据库中获取的数据的单独问题?