Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中的映射列表和字典_Python_List_Dictionary - Fatal编程技术网

Python中的映射列表和字典

Python中的映射列表和字典,python,list,dictionary,Python,List,Dictionary,我试图在Python中映射字典和列表之间的值。 我正在尝试计算在图像中找到的对象数: 例如,我发现: 正方形:3 矩形:4 椭圆=2 三角形=1 现在,我将它们按降序添加到列表中 列表变为:[4,3,2,1] 现在我想说列表中的“4”对应于“矩形”, “2”对应于“椭圆形” 我正试着用字典,但很费劲 因为,我对多个图像执行此操作,所以输出将不同。 例如,下一幅图像给出了结果: 正方形:4 矩形:3 椭圆=1 三角形=2 现在列表变成[4,3,1,2] 因此,它应该将“4”映射为正方形而不是矩形我

我试图在Python中映射字典和列表之间的值。 我正在尝试计算在图像中找到的对象数: 例如,我发现: 正方形:3 矩形:4 椭圆=2 三角形=1

现在,我将它们按降序添加到列表中

列表变为:[4,3,2,1]

现在我想说列表中的“4”对应于“矩形”, “2”对应于“椭圆形” 我正试着用字典,但很费劲

因为,我对多个图像执行此操作,所以输出将不同。 例如,下一幅图像给出了结果:

正方形:4 矩形:3 椭圆=1 三角形=2

现在列表变成[4,3,1,2]

因此,它应该将“4”映射为正方形而不是矩形

我会使用字典:

# Squares:3 Rectangles:4 Oval=2 Triangle=1

shapes = {}
shapes["Square"]    = 3
shapes["Rectangle"] = 4
shapes["Oval"]      = 2
shapes["Triangle"]  = 1

print(shapes)               # {'Square': 3, 'Oval': 2, 'Triangle': 1, 'Rectangle': 4}

# Sort list of key,value pairs in descending order
pairs = sorted(shapes.items(), key=lambda pair: pair[1], reverse=True)
print(pairs)                # [('Rectangle', 4), ('Square', 3), ('Oval', 2), ('Triangle', 1)]

# Get your list, in descending order
vals = [v for k,v in pairs]
print(vals)                 # [4, 3, 2, 1]

# Get the keys of that list, in the same order
keys = [k for k,v in pairs] # ['Rectangle', 'Square', 'Oval', 'Triangle']
print(keys)
输出:

{'Square': 3, 'Oval': 2, 'Triangle': 1, 'Rectangle': 4}          # shapes
[('Rectangle', 4), ('Square', 3), ('Oval', 2), ('Triangle', 1)]  # pairs
[4, 3, 2, 1]                                                     # vals
['Rectangle', 'Square', 'Oval', 'Triangle']                      # keys

对于有观察力的读者来说,字典一点也不必要——但是我想还有更多我们不知道的目标,字典在哪里最有意义。

你能确切地说明你在问什么吗?您说您正在将dict的值映射到一个列表,因此此时您正在丢失键。但是你说你想再次使用钥匙。你为什么需要这个列表呢?你应该颠倒你的键值对,真正质疑你的数据结构。如果您有一个
mydict={4:“矩形”}
字典,那么
mydict[4]
将为您提供
矩形
。但是,当你只需要一本字典时,为什么要同时使用这两种语言呢?您似乎有不必要的对象。您可能需要使用
计数器及其
最常用的
方法。我不想使用列表,但我想按照降序排序字典,而不是基于整数值(“对象数”)“我想按照降序排序字典,而不是基于整数值(“对象数”)。这是什么意思?