【发布时间】:2019-05-11 20:09:55
【问题描述】:
我有一个成对字典列表,如下所示:
[{'Anna': {'star': 5, 'banana': 12, 'bag': 7}, 'Ben': {'star': 5, 'banana': 12, 'melon': 1}},
{'Anna': {'star': 5, 'banana': 12, 'bag': 7}, 'Cam': {'star': 65, 'melon': 1}},
{'Anna': {'star': 5, 'banana': 12, 'bag': 7}, 'Den': {'juice': 0, 'cake': 4}}, ...]
我需要比较这些对的最小值(以分数为单位),但我们只关注焦点人物中的项目,在本例中为 Anna。
以第一对为例,
“Anna”和“Ben”的共同点是“star”和“banana”。由于我们只关心焦点人物'Anna',我们只需要找到'star'、'banana'和'bag'的最小值。
然后,在比较最小值后减去 1:
Ans = 1 - min('star':[5/24, 5/18], 'banana':[12/24, 12/24], 'bag':[7/24, 0])
所以理想的结果是
Anna-Ben = Ans1
Anna-Cam = Ans2
Anna-Den = Ans3
.
.
.
.
知道如何做到这一点吗?非常感谢你,对不起我的英语!
*编辑:
您好,感谢您的回复,但我想要的是 1 减去每个项目的最小值。就像“安娜-本”对一样,
[5/24, 5/18] 之间的“星”的最小值是 5/24,
在 [12/24, 12/18] 之间“香蕉”的最小值是 12/24,并且
[7/24, 0] 之间的“包”的最小值为 0(只有 Anna 有包,Ben 没有包,所以它为零)。
我们忽略了“Ben”中的“melon”项目,因为我们只关注焦点人物“Anna”。
因此,“安娜-本”对的最终结果应该是 [1 - 5/24 - 12/24 - 0 = 7/24]。
【问题讨论】:
-
所有项目都需要一分钟吗?我的意思是每个项目的最小值之间的最小值?
-
用代码编写问题以使用有效代码时非常有帮助。很难理解
Ans = 1 - min('star':[5/24, 5/18], 'banana':[12/24, 12/24], 'bag':[7/24, 0])的意思,因为它不是有效的python。Ans应该在这里是什么?一本字典?单一价值?一份清单? -
@palvarez 我想要每个项目的最小值,比如这对之间“星”的最小值。
-
@MarkMeyer 是的,你是对的,我很抱歉。 Ans 应该是一个浮点值。
标签: python python-3.x algorithm dictionary