亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

比較有序列表中的值

比較有序列表中的值

手掌心 2023-08-08 16:34:40
我開始了一個項目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]我把它們從最小到最大組織起來
查看完整描述

1 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

您可以使用chunkedmore-itertools 庫將列表分成對,然后循環遍歷這些對以查找每個鍵的最大日期,并將其存儲在字典中( ,last_val在下面的代碼中)。這可能是進一步處理最有用的形式。

如果您確實需要將其轉換回交錯形式,則可以將日期格式化回字符串,并使用chain標準庫中的函數將這些對展平回可迭代(flattened在下面的代碼中)或列表。

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))


查看完整回答
反對 回復 2023-08-08
  • 1 回答
  • 0 關注
  • 128 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號