在嵌套列表中打印第二低分记分员的名称,并在Python中按字母顺序排列 如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu': arr=[] 对于范围内的(int(input()): 名称=输入() arr.append(名称) 分数=浮动(输入() arr.append(分数) 数组=[arr[i:i+2]表示范围内的i(0,len(arr),2)] 分数=[] 对于范围(0,len(数组))中的j: marks.append(数组[j][1]) 标记=列表(映射(浮动,标记)) marks.sort() seclow=分数[1] 对于范围(0,len(数组))中的k: 如果(seclow==float(数组[k][1]): 打印(数组[k][0])

在嵌套列表中打印第二低分记分员的名称,并在Python中按字母顺序排列 如果uuuu name_uuuu=='\uuuuuuu main\uuuuuu': arr=[] 对于范围内的(int(input()): 名称=输入() arr.append(名称) 分数=浮动(输入() arr.append(分数) 数组=[arr[i:i+2]表示范围内的i(0,len(arr),2)] 分数=[] 对于范围(0,len(数组))中的j: marks.append(数组[j][1]) 标记=列表(映射(浮动,标记)) marks.sort() seclow=分数[1] 对于范围(0,len(数组))中的k: 如果(seclow==float(数组[k][1]): 打印(数组[k][0]),python,python-3.x,list,nested-lists,Python,Python 3.x,List,Nested Lists,唯一的问题是按字母顺序排列得分最低的名字。我应该使用列表来通过测试用例。那么,应该对代码进行哪些更改?通过此处检查: 而不是定义列表。把它存到字典里。这将为您提供空间优化的解决方案。然后按值对字典排序。在字典中添加有分数的名称 试试看: import collections if __name__ == '__main__': arr = {} for _ in range(int(input())): name = input() score =

唯一的问题是按字母顺序排列得分最低的名字。我应该使用列表来通过测试用例。那么,应该对代码进行哪些更改?

通过此处检查:

而不是定义列表。把它存到字典里。这将为您提供空间优化的解决方案。然后按值对字典排序。在字典中添加有分数的名称

试试看:

import collections
if __name__ == '__main__':
    arr = {}
    for _ in range(int(input())):
        name = input()
        score = float(input())
        arr[name] = score

    dd = collections.defaultdict(list)

    for k,v in arr.items():
        dd[v].append(k)

    x = sorted(dd.items())
    sec_low = sorted(x[1][1])
    for i in sec_low:
        print(i)
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
Berry
Harry
[(37.2, ['Tina']),
 (37.21, ['Harry', 'Berry']),
 (39.0, ['Harsh']),
 (41.0, ['Akriti'])]

输入:

import collections
if __name__ == '__main__':
    arr = {}
    for _ in range(int(input())):
        name = input()
        score = float(input())
        arr[name] = score

    dd = collections.defaultdict(list)

    for k,v in arr.items():
        dd[v].append(k)

    x = sorted(dd.items())
    sec_low = sorted(x[1][1])
    for i in sec_low:
        print(i)
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
Berry
Harry
[(37.2, ['Tina']),
 (37.21, ['Harry', 'Berry']),
 (39.0, ['Harsh']),
 (41.0, ['Akriti'])]
输出:

import collections
if __name__ == '__main__':
    arr = {}
    for _ in range(int(input())):
        name = input()
        score = float(input())
        arr[name] = score

    dd = collections.defaultdict(list)

    for k,v in arr.items():
        dd[v].append(k)

    x = sorted(dd.items())
    sec_low = sorted(x[1][1])
    for i in sec_low:
        print(i)
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
Berry
Harry
[(37.2, ['Tina']),
 (37.21, ['Harry', 'Berry']),
 (39.0, ['Harsh']),
 (41.0, ['Akriti'])]

x:

import collections
if __name__ == '__main__':
    arr = {}
    for _ in range(int(input())):
        name = input()
        score = float(input())
        arr[name] = score

    dd = collections.defaultdict(list)

    for k,v in arr.items():
        dd[v].append(k)

    x = sorted(dd.items())
    sec_low = sorted(x[1][1])
    for i in sec_low:
        print(i)
5
Harry
37.21
Berry
37.21
Tina
37.2
Akriti
41
Harsh
39
Berry
Harry
[(37.2, ['Tina']),
 (37.21, ['Harry', 'Berry']),
 (39.0, ['Harsh']),
 (41.0, ['Akriti'])]

不使用任何导入和更少的代码,可以这样做。 我还把它放进了一个函数中,只是为了让它更干净一点,所以如果需要的话,你可以在其他地方重用它

def main():
    scores_dict = {}
    for _ in range(int(input())):
        name, score = input(), float(input())

        if score not in scores_dict:
            scores_dict[score] = []
        scores_dict[score].append(name)

    # Delete the min score key and names so that we can grab the second min
    del scores_dict[min(scores_dict.keys())]

    # Get new min score.
    min_score = min(scores_dict.keys())

    # Sort new min score.
    scores_dict[min_score].sort()
    # Print each name in results
    [print(i) for i in scores_dict[min_score]]

if __name__ == '__main__':
    main()


处理重复最低和重复第二最低

样本输入:{“hri”:6.2,“dav”:1.1,“asv”:1.1,“wrs”:12.3,“dup”:6.2,“awe”:43.2,“asw”:22.2,“asd”:6.2}

输出:['asd'、'dup'、'hri']可以打印到“\n”


您将每个条目的名称和分数添加到相同的列表中。如果你重新排序,名字和分数就会混淆。考虑到这是键值对的基本情况。我会制作一本以分数为键的字典,并列出名称/值。这样你就可以给他们打电话了。你的问题解决了吗?是的。谢谢你帮我。从你身上学到了很多@PygirlThanks寻求解决方案。这对我来说容易多了。