字典样本如下:
d = { 1:'',2:'',3:'',5:'',6:'2',7:'',9:'',10:'6',11:'7',13:'9',14:'',15:'11'}
我想在键3之后添加带有空字符串的键4作为值,在键7之后添加带有空字符串的键8作为值,依此类推......我想要python中最简单的代码。
字典样本如下:
d = { 1:'',2:'',3:'',5:'',6:'2',7:'',9:'',10:'6',11:'7',13:'9',14:'',15:'11'}
我想在键3之后添加带有空字符串的键4作为值,在键7之后添加带有空字符串的键8作为值,依此类推......我想要python中最简单的代码。
>>> d = { 1:'',2:'',3:'',5:'',6:'2',7:'',9:'',10:'6',11:'7',13:'9',14:'',15:'11'}
>>> d.update(dict.fromkeys(set(range(16)).difference(d), ''))
>>> d
{0: '', 1: '', 2: '', 3: '', 4: '', 5: '', 6: '2', 7: '', 8: '', 9: '', 10: '6', 11: '7', 12: '', 13: '9', 14: '', 15: '11'}
请注意,该 dict是无序的,即使在此示例中它可能看起来是有序的!
Python 字典不维护顺序。您不能在另一个键之后添加任何内容。
只需添加您缺少的键:
d.update((missing, '') for missing in set(range(1, max(d) + 1)).difference(d))
这是一种紧凑的说法:
for index in range(1, max(d) + 1): # all numbers from 1 to the highest value in the dict
if index not in d: # index is missing
d[index] = '' # add an empty entry
但是,它看起来更像是您需要一个列表:
alist = [None, '', '', '', '', '', '2', '', '', '', '6', '7', '', '9', '', '11']
wherealist[15]
返回'11'
就像你的d
. 一None
开始可以更容易地处理这种基于 1 的索引而不是基于 0 的索引,否则您可以为此调整代码。