【问题标题】:sort python ( print Uppercase/Lowercase letters in out)排序python(打印大写/小写字母)
【发布时间】:2020-12-24 17:49:42
【问题描述】:

Ahmed 正在将计算机奥赛参赛者的最终名单发送给结果审查委员会,以便委员会打印最终的参赛卡,但由于在考试期间没有具体的姓名注册格式,参赛者被提名为标准。他们不是自己写的。此外,它被写在它参加比赛的每种语言名称的延续中,并且在每个名称的开头,都指定了人们的性别。名词的标准形式是名词的第一个字母大写,其余字母小写。编写一个程序,从输入中读取参赛者的人数、姓名、性别和语言,根据性别区分姓名,对其进行标准化,并在每个姓名前写下它与之竞争的语言。 (在输出中,应先打印女性的性别,然后打印男性的性别。每种性别的姓名应以英文字母打印。)

 Sample input:
     m.hosSein.python
     f.miNa.C
     m.aHMad.C++
     f.Sara.java
    Sample output:
    f Mina C
    f Sara java
    m Ahmad C++
    m Hossein python

如何更正此代码?如何更正大小写字母?

def Olampiad(n):
    my_list = []
    for i in range(0, n):
        s = input()
        s = s.lower()
        my_list.append(s.strip().split('.'))
    my_list = sorted(my_list)
    return my_list


n = int(input(''))

for char in Olampiad(n):

    if char[0] == 'f':
        if char[2] == 'c' or char[2] == 'c++' or char[2] == 'c#' or char[2] == 'java':
            print(char[0], char[1].capitalize(), char[2])
        else:
            print(char[0], char[1].capitalize(), char[2])

    if char[0] == 'm':
        if char[2] == 'c' or char[2] == 'c++' or char[2] == 'c#' or char[2] == 'java':
            print(char[0], char[1].capitalize(), char[2])
        else:
            print(char[0], char[1].capitalize(), char[2])

【问题讨论】:

  • 可以是任意名称,例如char
  • 注意:如果您打算使用字典来解决问题,请注意字典不保持顺序。 - 它在 python 3.7+ 中 - 插入顺序 - 它们可能要调整任务描述

标签: python python-3.x


【解决方案1】:

您不按性别排序,也不按名称按字母顺序排序,然后按任务。您的代码会立即打印出来。

你需要

  • 获取所有数据
  • 拆分和排序
  • 修正拼写

然后以正确的顺序打印:

print( *[f"{a} {b.capitalize()} {c}" 
            for a,b,c in sorted([input().strip().split(".") 
                                for _ in range(int(input()))],
                                key=lambda x:(x[0],x[1].lower()))], 
        sep="\n")

输入

4
m.hosSein.python
f.miNa.C
m.aHMad.C++
f.Sara.jav

你得到一个输出

f Mina C
f Sara jav
m Ahmad C++
m Hossein python 

阅读:

【讨论】:

    【解决方案2】:

    你的代码应该是:

    x = int(input())
    z = list()
    for i in range(x):
        y = input()
        y = y.split('.')
        z.append(y)
    for ii in range(len(z)):
        z[ii][1] = z[ii][1].lower()
        z[ii][1] = z[ii][1].capitalize()
        z[ii] = tuple(z[ii])
    z.sort(key = lambda x: x[1])
    z.sort()
    for iii in range(len(z)):
        print(z[iii][0],z[iii][1],z[iii][2])
    

    【讨论】:

    • 稍微解释一下就好了
    猜你喜欢
    • 2020-08-24
    • 2014-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-12-14
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2012-11-18
    相关资源
    最近更新 更多