【问题标题】:Is there any function, what can get a first value of the day and skip the values of the same day in Python?有什么函数,什么可以获取当天的第一个值并在 Python 中跳过同一天的值?
【发布时间】:2022-01-23 05:10:04
【问题描述】:

我有一个 json 文件,其中包含许多不同时间的值,例如 05-01-2020 19:04:27。 时间也有一个特定的值,例如 05-01-2020 19:04:27。 3503.443.

我怎样才能得到一个单一的值,我不想打印所有的值,只打印一个。 例如

  • 05-01-2020 19:04:27, 2567.2
  • 05-01-2020 19:44:51, 4333.54
  • 05-01-2020 21:35:10, 4345.45
  • 05-01-2020 23:04:49, 3503.443

我只需要第一个。

我尝试在 Python 范围内循环文件并每天选择,不幸的是每天的价值量可能不同。有朝一日有 2 个值,但有朝一日甚至有 22 个。

Summa summarum 有什么功能,什么可以获取当天的第一个值并跳过当天的值并打印它,然后是第二天的第一个值等等? :)

【问题讨论】:

  • 条目是否已经按时间顺序排序?有多少?

标签: python python-3.x unix-timestamp


【解决方案1】:

列表中的项目是如何构成的?

如果每个值都是一个字符串:("05-01-2020 23:04:49, 3503.443")

理想的解决方案是遍历整个列表,拆分项目并将结果分配给不同的列表:

my_list = ["05-01-2020 23:04:49, 3503.443", "05-01-2020 23:04:49, 3503.443", "05-01-2020 23:04:49, 3503.443", "05-01-2020 23:04:49, 3503.443", "05-01-2020 23:04:49, 3503.443"]
datetime = []
values = []

for val in my_list:
    split_val = val.split(" ")
    datetime.append(f"{split_val[0]} {split_val[1][:-1]}")
    values.append(split_val[2])

structured_list = list(zip(datetime, values))

def get_value(your_structured_list: list, datetime:str):
    for val in your_structured_list:
        if datetime == val[0]:
            return val[1]

get_value(structured_list, '05-01-2020 23:04:49')

【讨论】:

  • 谢谢回复 :) 是的,每个值都是一个字符串,就像你写的那样。这个解决方案也有效,就像我得到的第二个答案一样。必须检查哪一个与我的项目一起工作:)
【解决方案2】:

您可以将每个日期写入字典,以便每个日期只有一个值:

timestamps = [
    "05-01-2020 19:04:27, 2567.2",
    "05-01-2020 19:44:51, 4333.54",
    "05-01-2020 21:35:10, 4345.45",
    "05-01-2020 23:04:49, 3503.443",
    "05-02-2020 00:04:49, 3503.443",
    "05-02-2020 01:04:49, 3503.443",
]

value_by_day = {x.split()[0]: x for x in timestamps[::-1]}
print(list(value_by_day.values())[::-1])

它以相反的顺序运行,因此最后一个值(每天)是保留在 value_by_day 字典中的值。然后打印字典中的所有值,但再次颠倒顺序以使其恢复到时间顺序

输出:

['05-01-2020 19:04:27, 2567.2', '05-02-2020 00:04:49, 3503.443']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    • 1970-01-01
    相关资源
    最近更新 更多