【问题标题】:get values of two date.time lists获取两个 date.time 列表的值
【发布时间】:2016-12-29 21:18:51
【问题描述】:

有两个列表

A=[datetime.datetime(2007, 7, 25, 0, 0), datetime.datetime(2007, 7, 27, 0, 0), datetime.datetime(2007, 7, 30, 0, 0)]

B = [[datetime.datetime(2007, 7, 25, 0, 0) 12]
 [datetime.datetime(2007, 7, 26, 0, 0) 19]
 [datetime.datetime(2007, 7, 27, 0, 0) 23]
 [datetime.datetime(2007, 7, 28, 0, 0) 24]
 [datetime.datetime(2007, 7, 29, 0, 0) 58]
 [datetime.datetime(2007, 7, 30, 0, 0) 70]
 [datetime.datetime(2007, 7, 31, 0, 0) 75]
 [datetime.datetime(2007, 8, 1, 0, 0) 100]]

它如何仅返回列表 A 的 date.times 的矩阵 B 的对应值? 结果可能是列表 B 的行数

[0,2,5]

或者只是值

[12,23,70]

【问题讨论】:

  • 您的语法是否正确?我想它应该在日期时间值之后有逗号(,)。
  • datetime.datetime(2007, 7, 25, 0, 0) 12 是语法错误。它们是不同的项目吗?如果是这样,您可以使用列表理解[i for i, (j, num) in enumerate(B) if j in A]

标签: python python-3.x


【解决方案1】:

您可以使用列表推导并过滤掉A中未包含的值:

r = [val for date, val in B if date in A]
print(r)
# [12, 23, 70]

您最好将A 设置为设置,以缩短每个日期的会员测试时间。

要获取匹配项的索引,您可以在列表理解中使用 enumerate 并收集索引而不是值。

【讨论】:

    猜你喜欢
    • 2018-06-30
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多