【问题标题】:Create a new dictionary in python with unique values based in the second parameter在 python 中创建一个新字典,其具有基于第二个参数的唯一值
【发布时间】:2017-06-08 14:48:31
【问题描述】:

我有一本这样的字典

{id : ['string',[1,2,3,4,5]], .....}

我想创建一个具有唯一字符串的新字典。 但是,如果我们有相等的字符串,请根据第二个值的最大平均值过滤其中一个。 例如,我有

{x:['ABC', [1,2,3,4,5], y:['ABC',[6,7,8,9,10],...} 

在这种情况下,x 和 y 对于第一个值具有相同的字符串,但是 6、7、8、9、10 的平均值大于 1、2、3、4、5。所以 y 将被附加到新字典中

【问题讨论】:

  • 你试过什么代码? Python 版本?
  • 显示所需字典的外观
  • 新字典应该看起来和原来的完全一样,除了过滤器的唯一值。 Python 2.7

标签: python dictionary unique


【解决方案1】:

使用以下方法:

# exemplary dict
d = {'x':['ABC', [1,2,3,4,5]], 'y':['ABC',[6,7,8,9,10]], 'z': ['BCA', [1,2,3]]}
new_d = {}

for k,v in d.items():
    if v[0] not in new_d or sum(v[1])/len(v[1]) > sum(new_d[v[0]][0])/len(new_d[v[0]][0]):
        new_d[v[0]] = [v[1], k]

new_d = {v[1]:[k, v[0]] for k,v in new_d.items()}
print(new_d)

输出:

{'y': ['ABC', [6, 7, 8, 9, 10]], 'z': ['BCA', [1, 2, 3]]}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-22
    • 2022-11-21
    • 1970-01-01
    • 2012-04-29
    • 1970-01-01
    • 2012-01-15
    • 2021-10-02
    相关资源
    最近更新 更多