【问题标题】:Find Highest Value in a dictionary [closed]在字典中查找最高值[关闭]
【发布时间】:2016-08-09 07:10:35
【问题描述】:

我有一本这样的字典:

class1 = {
          max: 10, 3, 5
          Michael: 4. 4, 8
          jack: 0, 0, 3
          }

这是相关代码

class1 = {}
        with open("1.txt", "r+") as f:
            for line in f:
                columns = line.split(":")
                if len(columns) == 2:
                    names = columns[0]
                    scores = columns[1].strip()
                else:
                    pass
                if class1.get(names):
                    class1[names].append(scores)
                else:
                    class1[names] = list(scores)

数字代表分数,我希望打印出每个名字的最高分数,这是我想要的输出:

max: 10
Micheal: 8
jack: 3

我已经试过了:

max_value = max(class1.values())
print(sorted(max_value))

但这对我的输出没有影响。

在此感谢您

【问题讨论】:

  • 这在 python 中甚至不是一个有效的字典。 tutorialspoint.com/python/python_dictionary.htm
  • @Racialz,这是我的实际字典,每个键都有多个值
  • 如果那些 dict 键应该是字符串,你忘记了引号。另外,您的第二个代码块中的疯狂缩进是怎么回事?顺便说一句,else: pass 是多余的。

标签: python dictionary


【解决方案1】:
class1 = {}
with open("1.txt", "r+") as f:
    for line in f:
        columns = line.split(":")
        if len(columns) == 2:
            name = columns[0].strip()
            scores = map(int, columns[1].split(','))
            class1[name] = scores

for name, scores in class1.items():
    print('{}: {}'.format(name, max(scores)))

【讨论】:

    【解决方案2】:
    for name, l in class1:
        print("%s : %d" % (name, max(l)))
    

    【讨论】:

      猜你喜欢
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 2021-07-16
      • 2015-08-05
      • 1970-01-01
      • 2020-07-17
      • 1970-01-01
      相关资源
      最近更新 更多