python - 更改字典中的多个键,同时在 Python 中执行 timedelta 操作

标签 python dictionary

我有一本字典,其中的键是整数。我随意将其中一个键更改为日期,我需要更改其他键。

示例数据:

{'C-STD-B&M-SUM': {datetime.date(2015, 7, 12): 0,
               -1: 0.21484699999999998,
               -2: 0.245074,
               -3: 0.27874}

预期输出:

{'C-STD-B&M-SUM': {datetime.date(2015, 7, 12): 0,
               datetime.date(2015, 7, 11): 0.21484699999999998,
               datetime.date(2015, 7, 10): 0.245074,
               datetime.date(2015, 7, 9): 0.27874}

目前的代码:

def change_start_date(dictionary_with_temporal_distribution):
    unsw_mid_year_end_date = datetime.date(2015, 7, 12)
    dictionary_with_temporal_distribution['C-STD-B&M-SUM'][unsw_mid_year_end_date] = dictionary_with_temporal_distribution['C-STD-B&M-SUM'][0]
    del dictionary_with_temporal_distribution['C-STD-B&M-SUM'][0]
    for k, v in dictionary_with_temporal_distribution['C-STD-B&M-SUM'].items():

最佳答案

你可以尝试类似的东西-

def change_start_date(dictionary_with_temporal_distribution):
    unsw_mid_year_end_date = datetime.date(2015, 7, 12)
    for k in list(dictionary_with_temporal_distribution['C-STD-B&M-SUM'].keys()):
        dictionary_with_temporal_distribution['C-STD-B&M-SUM'][unsw_mid_year_end_date + timedelta(days=k)] = dictionary_with_temporal_distribution['C-STD-B&M-SUM'][k]
        del dictionary_with_temporal_distribution['C-STD-B&M-SUM'][k]

关于python - 更改字典中的多个键,同时在 Python 中执行 timedelta 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30748670/

相关文章:

java - 如何在 Jython 和 PY4J 跨平台中使用 NLTK?

python - python 中的 Dateutil 解析错误返回错误的值

c# - 如何正确包装 Dictionary<T,U> 并公开枚举器?

python - 如何在 python 中过滤列表字典?

java - Jackson 反序列化 convertValue 应该在空值上失败

python - python中的词频程序

python - 协作主题建模的简单 Python 实现?

python - py.test 的 monkeypatch.setattr(...) 在某些情况下不起作用

python - Pandas loc 错误 : 'Series' objects are mutable, 因此它们不能被散列

c# - 在线程之间共享字典中的数据