微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

对python排序将大写/小写字母打印出来

如何解决对python排序将大写/小写字母打印出来

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

我该如何纠正此代码?如何纠正大写和小写字母case

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[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[2])

解决方法

在执行任务时,您不会按性别排序,也不会按名称字母排序。您的代码会立即打印。

您需要

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

,然后以正确的顺序打印:

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 

阅读:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。