有啥函数,啥可以获取当天的第一个值并在 Python 中跳过同一天的值?
Posted
技术标签:
【中文标题】有啥函数,啥可以获取当天的第一个值并在 Python 中跳过同一天的值?【英文标题】: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 有什么功能,什么可以获取当天的第一个值并跳过当天的值并打印它,然后是第二天的第一个值等等? :)
【问题讨论】:
条目是否已经按时间顺序排序?有多少? 【参考方案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']
【讨论】:
以上是关于有啥函数,啥可以获取当天的第一个值并在 Python 中跳过同一天的值?的主要内容,如果未能解决你的问题,请参考以下文章
使用 php 从 SQL DB 获取值并在 HTML5 中使用