根据输入值对python字典进行排序?

时间:2020-04-29 15:06:23

标签: python list dictionary

我有一个字典,其中有四个键abcd,值分别为100200,{{ }},300

400

还有一个变量list1 = {'a':'100','b':'200','c':'300','d':'400'}

inputs

如果输入为inputs = 'c' c字典必须基于它进行排序。

list1

4 个答案:

答案 0 :(得分:6)

在Python3.7 +中,字典键按插入顺序存储

k ='c'
d={k:list1[k]}
for key in list1:
    if key!=k:
        d[key]=list1[key]

输出

{'c': '300', 'a': '100', 'b': '200', 'd': '400'}

答案 1 :(得分:3)

似乎您只是想重新排列字典,使所选的值位于最前面,然后再其余键:

dict1 = {'a':'100','b':'200','c':'300','d':'400'}

key = 'c'

result = {key: dict1[key], **{k: v for k, v in dict1.items() if k != key}}

print(result)
# {'c': '300', 'a': '100', 'b': '200', 'd': '400'}

**仅将剩余的过滤键与key: dict1[key]合并。

答案 2 :(得分:2)

如果只想将给定值更改为第一个位置(如果存在),可以通过以下方式完成:

list1 = {'a':'100','b':'200','c':'300','d':'400'}

inputs = 'c'

output = {}

if inputs in list1.keys():
    output[inputs] = list1.get(inputs)

for i in list1.keys():
    output[i] = list1[i]

输出;

{'c': '300', 'a': '100', 'b': '200', 'd': '400'}

答案 3 :(得分:0)

这里是单线:

d = {'a':'100','b':'200','c':'300','d':'400'}
i = input()

d = {i:d[i],**{k:d[k] for k in d if k!=i}}

print(list1)

输入:

c

输出:

{'a': '100', 'b': '200', 'd': '400', 'c': '300'}