如何基于另一个字典的奇数和偶数创建字典?

时间:2019-05-18 22:18:46

标签: python dictionary

我有以下字典:

{'key1': [value1], 'key2': [value2], 'key3': [value3], 'key4': [value4] }

我要做的是使用这些值创建一个新的字典。奇数元素的值将是新键,而下一个元素的值将是该键的新值。我的意思是:

{'value1': [value2], 'value3': [value4]}

我该怎么做?我想澄清一下,这是一个小例子,由于字典中包含数百个元素,因此该解决方案应可扩展到具有任意数量元素的字典。

2 个答案:

答案 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)

要遵循的步骤:

  1. 从DictObj提取键数组
  2. 将它们列出为偶数和奇数索引数组类别
  3. 从这两个数组中创建字典。

    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