在新密钥中添加新密钥并在python字典中分配值

时间:2016-06-16 09:41:57

标签: python python-2.7 dictionary

我有一本字典:

dic = {'Test': {'cities':5}}

中添加键值对很容易

dic['test']

简单地写

dic['Test']['random'] = 1

给出这样的输出。

{'Test' : {'cities':5, 'random':1}}

但是如果我想添加一个键:键值。即从上面的步骤我想要一个输出,如:

{'Test' : {'cities':5, 'random':1, 'class':{ section : 5}}}

这不起作用,我认为可行。 dic['Test']['class']['section'] = 5

它给出了一个关键错误'class'。

对于我的具体情况,我将数据框的行指定为迭代中的键,如下所示。 dic[df.iloc[i]['column1']][df.iloc[i]['column2']] = df.iloc[i]['column3']

其中column1本身不在键中。 怎么做,我使用python 2.7

4 个答案:

答案 0 :(得分:3)

...

dic['Test']['class'] = {'section': 5}

答案 1 :(得分:2)

一行中有两个选项:

company_in_outs.inject({}) do |hash, record|
  (hash[record.date] ||= []) << record
  hash
end.values

分两行:

dic['Test']['class'] = {'section': 5}

答案 2 :(得分:1)

您也可以使用if (aStream == inputStream) { uint8_t buffer[4096]; int len; NSString* tempOutput = @""; while ([inputStream hasBytesAvailable]) { len = (int)[inputStream read:buffer maxLength:sizeof(buffer)]; NSLog(@"\nThe length is -- %d\n",len); if (len > 0) { NSData *data = [[NSData alloc] initWithBytes:buffer length:len]; output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; tempOutput = [tempOutput stringByAppendingString:output]; // output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSUTF8StringEncoding]; } } output = tempOutput; }

update

答案 3 :(得分:0)

>>> dic
{'Test': {'cities': 5}}
>>> dic['Test']
{'cities': 5}
>>> dic['Test']['random'] = 1
>>> dic
{'Test': {'random': 1, 'cities': 5}}
>>> dic['Test']['class'] = {'section':5}
>>> dic
{'Test': {'random': 1, 'cities': 5, 'class': {'section': 5}}}
>>>