我有以下字典:
{'key1': [value1], 'key2': [value2], 'key3': [value3], 'key4': [value4] }
我要做的是使用这些值创建一个新的字典。奇数元素的值将是新键,而下一个元素的值将是该键的新值。我的意思是:
{'value1': [value2], 'value3': [value4]}
我该怎么做?我想澄清一下,这是一个小例子,由于字典中包含数百个元素,因此该解决方案应可扩展到具有任意数量元素的字典。
答案 0 :(得分:1)
假设1)不会发生KeyError,即不存在具有相同值的奇数索引字典值,以及2)字典中的条目数为偶数,我将执行以下操作:
vals = my_dict.values()
new_dict = {}
for i in range(0, len(vals), 2):
new_dict[vals[i]] = vals[i+1]
但是,正如其他人指出的那样,词典实际上没有顺序,所以这是一个“可以说的”解决方案。
答案 1 :(得分:-1)
要遵循的步骤:
从这两个数组中创建字典。
dictObj = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3', 'key4': 'value4' };
print (dictObj.keys());
evenArray = dictObj.keys()[1::2];
oddArray = dictObj.keys()[::2];
dictObjNew = dict(zip(evenArray, oddArray))
print dictObjNew