我正在尝试根据集合中的日期使用键循环遍历两个查询集。每个日期都有两种类型的项目:生活事件和工作。字典应如下所示:
Timeline['1980']['event'] = "He was born"
Timeline['1992']['work'] = "Symphony No. 1"
Timeline['1993']['event'] = "He was married"
Timeline['1993']['work'] = "Symphony No. 2"
如何创建此词典?
我尝试了以下操作:
timeline = defaultdict(list)
for o in opus:
if o.date_comp_f is not None:
timeline[o.date]['work'].append(o)
timeline = dict(timeline)
for e in event:
if e.date_end_y is not None:
timeline[e.date]['event'].append(e)
timeline = dict(timeline)
我不断收到严重的密钥错误。
答案 0 :(得分:0)
timeline = {'1980':{'event':'He was born', 'work':'None'}, '1992':{'event':'None', 'work':'Symphony No. 1'}, '1993':{'event':'He was married', 'work':'Symphony No. 2'}}
有结果:
>>> timeline['1980']['event']
'He was born'
>>> timeline['1992']['work']
'Symphony No. 1'
>>> timeline['1993']['event']
'He was married'
>>> timeline['1993']['work']
'Symphony No. 2'
这是一个嵌套字典,外部字典是带有另一个字典值的日期键。内部字典是具有最终值的工作或事件的关键。
并添加更多内容:
>>> timeline['2019'] = {'event':'Asked stackoverflow question', 'work':'unknown'}
>>> timeline
{'1980': {'event': 'He was born', 'work': 'None'}, '1992': {'event': 'None', 'work': 'Symphony No. 1'}, '1993': {'event': 'He was married', 'work': 'Symphony No. 2'}, '2019': {'event': 'Asked stackoverflow question', 'work': 'unknown'}}
添加新密钥时,需要使用每个未来密钥的占位符将值设为空字典。
timeline['year'] = {'work':'', 'event':''}
或只是一个空字典,尽管您以后可能会丢失键
timeline['year'] = {}
答案 1 :(得分:0)
action="{% url 'order:order_page' %}"
或
t = {}
t['1980'] = {
'event':'He was born',
'work':'None'
}
答案 2 :(得分:0)
我不确定您想要什么,但是我想您想初始化一个字典,您可以在其中进行此类分配。您可能需要这样的东西:
from collections import defaultdict
# Create empty dict for assignment
Timeline = defaultdict(defaultdict)
# store values
Timeline['1980']['event'] = "He was born"
Timeline['1992']['work'] = "Symphony No. 1"
# Create a regular dict for checking if both are equal
TimelineRegular = {'1980':{'event':"He was born"},'1992':{'work':"Symphony No. 1"}}
# check
print(Timeline==TimelineRegular)
输出:
>>> True