【问题标题】:How to display "name" and "score" who have highest score?如何显示得分最高的“姓名”和“分数”?
【发布时间】:2019-09-21 16:56:09
【问题描述】:

我的问题是我有一个元组列表,我需要找出谁得分最高,以及相应的玩家姓名。

示例输入:

l=[
  ('ram'  ,16),
  ('sara' ,13),
  ('akhil',24),
  ('vinay',24)
]

样本输出:

akhil 24

解释:

首先,我根据元组列表中的第二个元素对数据进行排序。 在所有玩家中,“akhil”和“vinay”得分相同,因此两者之间 人们播放器“akhil”按字典或字典顺序首先开始,所以我打印了“akhil”。

谢谢。

【问题讨论】:

    标签: list sorting tuples python-3.7 lexicographic


    【解决方案1】:

    试试这个。

    from collections import OrderedDict
    l=[('ram',16),('sara',13),('akhil',24),('vinay',24)]
    a = {}
    for i in l:
        a[i[0]]=i[1]
    a = OrderedDict(sorted(a.items(), key=lambda t: t[0]))
    print max(a.iterkeys(), key=lambda k: a[k]),a[max(a.iterkeys(), key=lambda k: a[k])]
    

    【讨论】:

      【解决方案2】:

      l=[('ram' ,16),('sara' ,13),('akhil',24),('vinay',24)]

      l1=[]

      l.sort(key=lambda x:x[1])

      打印(l)

      for i in range(1,len(l)):

      if(l[i-1][1]==l[i][1]):
          l1.append(l[i][0])
          l1.append(l[i-1][0])
          z=l[i-1][1]
      

      l1.sort()

      打印(l1[0],z)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-04
        • 1970-01-01
        • 1970-01-01
        • 2019-06-23
        相关资源
        最近更新 更多