如何将键值对添加到字典中? [复制]
Posted
技术标签:
【中文标题】如何将键值对添加到字典中? [复制]【英文标题】:How to add key,value pair to dictionary? [duplicate] 【发布时间】:2011-04-16 03:10:10 【问题描述】:如何将键值对添加到字典中?下面我提到了以下格式?
'1_somemessage': [[3L,
1L,
u'AAA',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'gffggf'],
[3L,
1L,
u'BBB',
1689544L,
datetime.datetime(2010, 9, 21, 20, 30),
u'ffgffgfg'],
[3L,
1L,
u'CCC',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'hjhjhjhj'],
[3L,
1L,
u'DDD',
1689544L,
datetime.datetime(2010, 9, 21, 21, 45),
u'jhhjjh']],
'2_somemessage': [[4L,
1L,
u'AAA',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'gffggf'],
[4L,
1L,
u'BBB',
1689544L,
datetime.datetime(2010, 9, 21, 20, 30),
u'ffgffgfg'],
[4L,
1L,
u'CCC',
1689544L,
datetime.datetime(2010, 9, 21, 22, 30),
u'hjhjhjhj'],
[4L,
1L,
u'DDD',
1689544L,
datetime.datetime(2010, 9, 21, 21, 45),
u'jhhjjh']]
【问题讨论】:
【参考方案1】:向字典中添加键、值对
aDict =
aDict[key] = value
动态加法是什么意思。
【讨论】:
谢谢它的工作..我的意思是查询的结果集。你知道使用 python 有哪些问题吗?在我在 dotnet 工作之前,我不知道这项技术是新手。 @Krishnasamy:如果您之前曾在 dotnet 上工作过,那么使用 Python 会很愉快。它与 dotnet 和 java 一样多才多艺,甚至更多 如果我在 for 循环中使用它而不是它只给出最后一条记录.. 如何在循环中获取所有键值对【参考方案2】:为了快速参考,以下所有方法都将添加一个新的键“a”,如果它不存在,或者它会使用提供的新值更新现有的键值对:
data['a']=1
data.update('a':1)
data.update(dict(a=1))
data.update(a=1)
您也可以将它们混合在一起,例如,如果 key 'c' 在 data 中但 'd' 不在,则以下方法将更新 'c' 并添加 'd'
data.update('c':3,'d':4)
【讨论】:
为什么投反对票?答案是尝试添加有用的信息,以便观众可以有一个更全面的替代答案,恕我直言,否决投票的绅士/女士可以澄清一下吗? 你不需要回答这个问题,因为它是重复的 - 处理它的适当方法是将其标记为欺骗 - 在那里查看更多信息How should duplicate questions be handled? @Zhenhua 我发现这个答案很有用。 这个答案比其他答案更有帮助。 SO 真的需要想办法让事情变得更好。这被否决为重复。但这是用户搜索时出现的第一件事。否决票然后开始更多的对话,这导致这个答案的受欢迎程度进一步上升,从而隐藏了原来的答案。如果这个答案不存在,我永远不会找到原始答案。那么为什么不完全删除这个问题呢?【参考方案3】:我不确定您所说的“动态”是什么意思。如果您的意思是在运行时将项目添加到字典中,那么就像dictionary[key] = value
一样简单。
如果你想创建一个以键、值开头的字典(在编译时)然后使用(惊喜!)
dictionary[key] = value
【讨论】:
【参考方案4】:我来这里是为了寻找一种将键/值对添加为组的方法 - 在我的情况下,它是函数调用的输出,因此使用 dictionary[key] = value
添加该对需要我知道键的名称。
在这种情况下,您可以使用更新方法:
dictionary.update(function_that_returns_a_dict(*args, **kwargs)))
请注意,如果dictionary
已经包含其中一个键,则原始值将被覆盖。
【讨论】:
【参考方案5】:这可能会有所帮助
import collections
#Write you select statement here and other things to fetch the data.
if rows:
JArray = []
for row in rows:
JArray2 = collections.OrderedDict()
JArray2["id"]= str(row['id'])
JArray2["Name"]= row['catagoryname']
JArray.append(JArray2)
return json.dumps(JArray)
示例输出:
[
"id": 14
"Name": "someName1"
,
"id": 15
"Name": "someName2"
]
【讨论】:
【参考方案6】:如果要在表单中添加新记录
newRecord = [4L, 1L, u'DDD', 1689544L, datetime.datetime(2010, 9, 21, 21, 45), u'jhhjjh']
到messageName
,其中messageName
形式为X_somemessage
可以,但不必在您的字典中,然后这样做:
myDict.setdefault(messageName, []).append(newRecord)
这样它将被附加到现有的messageName
或为新的messageName
创建一个新列表。
【讨论】:
您也可以从defaultdict(list)
开始。【参考方案7】:
插入/追加到字典
"0": "travelkey":"value", "travelkey2":"value","1":"travelkey":"value","travelkey2":"value"
travel_dict= #initialize dicitionary
travel_key=0 #initialize counter
if travel_key not in travel_dict: #for avoiding keyerror 0
travel_dict[travel_key] =
travel_temp=val['key']:'no flexible'
travel_dict[travel_key].update(travel_temp) # Updates if val['key'] exists, else adds val['key']
travel_key=travel_key+1
【讨论】:
以上是关于如何将键值对添加到字典中? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
javascript 将键值对添加到JavaScript对象