我有一份这样的辞典 list :

data = [
    {"Zeit": datetime(2024, 2, 27, 8, 0), "km": 10},
    {"Zeit": datetime(2024, 2, 27, 13, 30), "km": 20},
    {"Zeit": datetime(2024, 2, 27, 17, 30), "km": 40},
    {"Zeit": datetime(2024, 2, 28, 9, 15), "km": 15},
    {"Zeit": datetime(2024, 2, 28, 14, 45), "km": 25}
]

现在我想找出每天的第一个时间,并指定Km=0.这应该会导致这样的结果:

data = [
    {"Zeit": datetime(2024, 2, 27, 8, 0), "km": 0},
    {"Zeit": datetime(2024, 2, 27, 13, 30), "km": 20},
    {"Zeit": datetime(2024, 2, 27, 17, 30), "km": 40},
    {"Zeit": datetime(2024, 2, 28, 9, 15), "km": 0},
    {"Zeit": datetime(2024, 2, 28, 14, 45), "km": 25}
]

我该怎么做?

到目前为止,我甚至没有找到一个很好的起点来处理这个问题.

推荐答案

try :

from datetime import datetime
from itertools import groupby

data = [
    {"Zeit": datetime(2024, 2, 27, 8, 0), "km": 10},
    {"Zeit": datetime(2024, 2, 27, 13, 30), "km": 20},
    {"Zeit": datetime(2024, 2, 27, 17, 30), "km": 40},
    {"Zeit": datetime(2024, 2, 28, 9, 15), "km": 15},
    {"Zeit": datetime(2024, 2, 28, 14, 45), "km": 25},
]

# sort if needed:
# data.sort(key=lambda d: d["Zeit"])

for _, g in groupby(data, lambda d: (d["Zeit"].year, d["Zeit"].month, d["Zeit"].day)):
    first = next(g)
    first["km"] = 0

print(data)

打印:

[
    {"Zeit": datetime.datetime(2024, 2, 27, 8, 0), "km": 0},
    {"Zeit": datetime.datetime(2024, 2, 27, 13, 30), "km": 20},
    {"Zeit": datetime.datetime(2024, 2, 27, 17, 30), "km": 40},
    {"Zeit": datetime.datetime(2024, 2, 28, 9, 15), "km": 0},
    {"Zeit": datetime.datetime(2024, 2, 28, 14, 45), "km": 25},
]

Python相关问答推荐

使用mySQL的SQlalchemy过滤重叠时间段

Gekko:Spring-Mass系统的参数识别

Python 约束无法解决n皇后之谜

可变参数数量的重载类型(args或kwargs)

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

如何获取numpy数组的特定索引值?

Python解析整数格式说明符的规则?

ThreadPoolExecutor和单个线程的超时

Pandas—在数据透视表中占总数的百分比

使用Python从URL下载Excel文件

python—telegraph—bot send_voice发送空文件

基于多个数组的多个条件将值添加到numpy数组

判断Python操作:如何从字面上得到所有decorator ?

如何过滤组s最大和最小行使用`transform`'

为用户输入的整数查找根/幂整数对的Python练习

我什么时候应该使用帆布和标签?

如果不使用. to_list()[0],我如何从一个pandas DataFrame中获取一个值?

如何在Python中解析特定的文本,这些文本包含了同一行中的所有内容,

为什么按下按钮后屏幕的 colored颜色 保持不变?

利用广播使减法更有效率