Python3中如何根据键值来输出键名

Python019

Python3中如何根据键值来输出键名,第1张

如果经常使用键值查询,建议用键值建立字典data = {

    1: "A",

    2: "B",

    3: "C",

    4: "A",

    5: "D",

}

match_data = {}

for (key, value) in data.items():

    if value == 'A':

        match_data[key] = value

print(match_data)

你是希望按照输入顺序输出还是按照key或者value的排序输出呢?

如果按照输入顺序输可以这样(方法一):

# 通过zip方法合并两个List为Dictionary

# 遍历会按原先的顺序

keys = ["b", "a", "c", "e", "d"]

values = ["2", "1", "3", "5", "4"]

 

for key,value in zip(keys, values):

    print(key,value)

 

# -- OUTPUT --

# b 2

# a 1

# c 3

# e 5

# d 4

如果按照输入顺序输出还可以这样(方法二):

import collections      

d=collections.OrderedDict()  

d['a']='A'  

d['b']='B'  

d['c']='C'  

for k,v in d.items():  

    print k,v 

# --  OUTPUT --

#a A  

#b B  

#c C

如果按照key排序输出要这样:

x = {1:2, 3:4, 4:3, 2:1, 0:0}  

#升序

sorted_x = sorted(x.iteritems(), key=lambda x : x[0])  

print sorted_x  

# --  OUTPUT --

#[(0, 0), (1, 2), (2, 1), (3, 4), (4, 3)]  

#降序

sorted_x = sorted(x.iteritems(), key=lambda x : x[0], reverse=True)  

print sorted_x  

# --  OUTPUT --

#[(4, 3), (3, 4), (2, 1), (1, 2), (0, 0)]

如果按照value排序输出要这样:

x = {1:2, 3:4, 4:3, 2:1, 0:0}  

#升序

sorted_x = sorted(x.iteritems(), key=lambda x : x[1])  

print sorted_x  

# --  OUTPUT --

#[(0, 0), (2, 1), (1, 2), (4, 3), (3, 4)]  

#降序

sorted_x = sorted(x.iteritems(), key=lambda x : x[1], reverse=True)  

print sorted_x  

# --  OUTPUT --

#[(3, 4), (4, 3), (1, 2), (2, 1), (0, 0)]