根据字典值的相反部分

问题描述 投票:1回答:2

我是Python的新手,我正在尝试用字典做不同的事情。我对如何将所有先前项目的顺序颠倒为值大于10的项目感到怀疑]

Input: [1 : value1, 2 : value2, 3 : value3, 4 : value4], knowing that (value3 * 2) > 10
Output : [1 : value2, 2 : value1, 3 : value3, 4 : value4]

带有字典中的真实示例:

Input :  {0: 1, 1: 4, 2: 6, 3: 1, 4: 2}

Output : {0: 4, 1: 1, 2: 6, 3: 1, 4: 2}

如果有多个数字,我希望每组项目都可以颠倒:

Input :  {0: 1, 1: 4, 2: 6, 3: 2, 4: 1, 5: 6, 6: 1, 7: 2}

Output : {0: 4, 1: 1, 2: 6, 3: 1, 4: 2, 5: 6, 6: 1, 7: 2}

我是Python的新手,我正在尝试用字典做不同的事情。我对如何将所有先前项目的顺序颠倒为值大于10的项目有疑问:[1:value1,2:...

python dictionary reverse
2个回答
1
投票

似乎您在set和list之间感到困惑。如果是列表,解决方案将是:


0
投票
def swapper(d):
    keys = []
    values = []
    for p in d:
        if p*d[p] > 10:
            values.reverse() # reverse the order of values
            for k,v in zip(keys, values): # update values
                d[k] = v
            keys = [] # empty the keys and values lists
            values = []
        else: # keep track of the things we will need to swap
            keys.append(p)
            values.append(d[p])
    return d
© www.soinside.com 2019 - 2024. All rights reserved.