<p>您将面临字典中键排序的问题。字典中的键(或键值对)是任意排序的。顺序不是固定的,可以在不同的步骤中更改。你知道吗</p>
<p>为了缓解这个问题,您可以使用模块<code>collections</code>中的<code>OrderedDict</code>。你知道吗</p>
<p>如果我理解你的问题,你就把你的字典整理一下,使它们有相同的键。如果<code>doc1</code>中有一个键,但是<code>doc2</code>缺少它,那么<code>doc2</code>应该用这个键和值0更新。如果这是正确的,那么您更希望复制键,而不是值。你知道吗</p>
<p>这是我的尝试:</p>
<pre><code>from collections import OrderedDict
# your initial data
my_dict = {
'doc0': {
'individu': 1,
'manajemen': 1,
'tahu': 1,
'logistik': 1,
'transaksi': 1
},
'doc1': {
'manajemen': 1,
'transfer': 1,
'individu':1,
'tahu':1,
'transaksi': 1,
'logistik': 1
},
'doc2': {
'manajemen': 1,
'logistik': 1,
'transaksi': 1
}
}
# get all keys in a help list
list_of_keys = []
for key in my_dict:
for dockey in my_dict[key]:
if dockey not in list_of_keys:
list_of_keys.append(dockey)
# sort the list
list_of_keys.sort()
# the list looks like this
# ['individu', 'logistik', 'manajemen', 'tahu', 'transaksi', 'transfer']
# now we can iterate through our data
# and align the keys and values in an OrderedDict
my_ordered_dict = OrderedDict()
# get the doc keys and update the ordered dictionary
for key in my_dict:
my_ordered_dict.update([(key, OrderedDict())])
for i in list_of_keys:
for key in my_dict:
if i in my_dict[key].iterkeys():
my_ordered_dict[key].update([(i, 1)])
else:
my_ordered_dict[key].update([(i, 0)])
</code></pre>
<p>现在,您在每个字典中都有了所有键,它们被排序并保留顺序。初始数据保持不变。你知道吗</p>
<p>我没有使用任何高级功能,如列表理解、三元运算符或类似功能。这个方法有点幼稚和简单,因为你是一个初学者,我认为你更容易理解每一步。你知道吗</p>
<p>我希望它能帮助你。你知道吗</p>