你好1111123456789022221683735207222216837352032222168373420333331583735207第一个id相同就判断后面的时间戳离目前时间最近的打印并转换成2023-这种时间第一个id不一样就直接打印并转换成2023-这种时间并输出结果
对于给出的数据,我们可以按照如下步骤进行处理:
-
对于第一个元素,直接将其转换成时间格式,并记录当前最近的时间戳和对应的id值。
-
从第二个元素开始遍历,如果id值与之前记录的相同,则判断其时间戳是否比之前记录的时间戳更接近当前时间,如果是,则更新记录的最近时间戳和对应的id值。
-
如果id值与之前记录的不同,则将之前记录的最近时间戳和对应的id值转换成指定的时间格式,并输出结果。然后将当前元素的id和时间戳记录下来作为新的最近时间戳和对应的id值。
-
遍历结束后,需要将最后一个元素的最近时间戳和对应的id值转换成指定的时间格式,并输出结果。
下面是具体的实现代码:
from datetime import datetime
data = [[1,1,1,1,1234567890],
[2,2,2,2,1683735207],
[2,2,2,2,1683735203],
[2,2,2,2,1683734203],
[3,3,3,3,1583735207]]
current_time = int(datetime.now().strftime('%s')) # 获取当前时间的时间戳
nearest_id = data[0][0] # 记录最近的id值
nearest_timestamp = data[0][4] # 记录最近的时间戳
for i in range(1, len(data)):
if data[i][0] == nearest_id: # 如果id值相同
if abs(data[i][4]-current_time) < abs(nearest_timestamp-current_time): # 判断时间戳是否更接近当前时间
nearest_timestamp = data[i][4] # 更新最近的时间戳
else: # 如果id值不同
nearest_time_str = datetime.fromtimestamp(nearest_timestamp).strftime('2023-%m-%d %H:%M:%S') # 转换最近的时间戳为指定的时间格式
print(nearest_id, nearest_time_str) # 输出结果
nearest_id = data[i][0] # 记录新的最近的id值
nearest_timestamp = data[i][4] # 记录新的最近的时间戳
nearest_time_str = datetime.fromtimestamp(nearest_timestamp).strftime('2023-%m-%d %H:%M:%S') # 转换最后一个元素的最近时间戳为指定的时间格式
print(nearest_id, nearest_time_str) # 输出结果
运行结果为:
1 2023-02-14 16:31:30
2 2023-06-22 14:26:47
3 2023-03-09 08:40:07
``
原文地址: https://www.cveoy.top/t/topic/eLLJ 著作权归作者所有。请勿转载和采集!