我有以下dicti_1
:
{'2017-09-01': ['PRUEBAPRUEBA', 'PRUEBA123123'],
'2017-10-03': ['PRUEBAPRUEBA', 'PRUEBA123123'],
'2017-11-08': ['PRUEBAPRUEBA', 'PRUEBA123123'],
'2017-12-03': ['PRUEBA123123']}
我期待检查最新密钥中出现的值(因为它是一个日期):
为了检查与最新密钥对应的最新值,我所做的是:
编辑:来自@COLDSPEED输入我对字典进行了排序,我使用了@Devin Jeanpierre 在以下链接中的答案是使用运算符模块对字典进行排序:How do I sort a dictionary by value?
sorted_dict = sorted(dicti_1.items(), key=operator.itemgetter(0))
latest_key=list(sorted_dict.keys())[-1]
return sorted_dict[latest_key]
在此之后,我期待创建一个包含最新日期和显示值的字典:
return {latest_key:sorted_dict[latest_key]}
输出:
{'2017-12-03': ['PRUEBA123123']}
但是,在我的特定情况下,2017-12-03
对应PRUEBA123123
有一个最新值,而最新日期为PRUEBAPRUEBA
的值为2017-11-08
。
因此,我想要的输出将是这样的:
new_dicti=
{'2017-12-03': ['PRUEBA123123'], '2017-11-08': ['PRUEBAPRUEBA']}
我面临的问题是如何使用每个不同值的最新日期设计new_dict
非常感谢您的帮助。
答案 0 :(得分:0)
请检查一下是否有效 -
import collections
dicti_1 = {'2017-09-01': ['PRUEBAPRUEBA', 'PRUEBA123123'],
'2017-11-08': ['PRUEBAPRUEBA', 'PRUEBA123123'],
'2017-10-03': ['PRUEBAPRUEBA', 'PRUEBA123123'],
'2017-12-03': ['PRUEBA123123']}
dicti_2 = collections.OrderedDict(sorted(dicti_1.items()))
print(dicti_2)
my_dict2 = { z:x for x,y in dicti_2.items() for z in y }
print(my_dict2)
output = {}
for key, value in my_dict2.items():
if value in output:
output[value].append(key)
else:
output[value] = [key]
print(output)
答案 1 :(得分:0)
我的方法是首先根据键对dict进行排序,然后将dict值中的唯一项存储到一个全新的词典中。
for date in sorted(d.keys(), reverse=True):
for l in d[date]:
if l not in new_dict:
new_dict[l] = date
它将产生如下的输出
{'PRUEBA123123': '2017-12-03', 'PRUEBAPRUEBA': '2017-11-08'}