python - 排序python(打印大写/小写字母)
问题描述
艾哈迈德正在将计算机奥赛参赛者的最终名单发送给结果审查委员会,以便委员会打印最终的参赛卡,但由于在考试期间没有具体的姓名注册格式,参赛者被提名为标准。他们不是自己写的。此外,它被写在它参加比赛的每个语言名称的延续中,并且在每个名称的开头,都指定了人们的性别。名词的标准形式是名词的第一个字母大写,其余字母小写。编写一个程序,从输入中读取参赛者的人数、姓名、性别和语言,根据性别区分姓名,将其标准化,并在每个名称前写下它与之竞争的语言。(在输出中,首先应该打印女性的性别,然后是男性的性别。每个性别的名字都应该用英文字母打印。)
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])
解决方案
您不按性别排序,也不按名称按字母顺序排序。您的代码会立即打印。
你需要
- 获取所有数据
- 拆分和排序
- 修正拼写
然后以正确的顺序打印:
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
阅读:
推荐阅读
- android - 在 Flutter 中从子小部件修改静态变量
- typescript - 嵌套箭头函数打字稿语法
- java - Python 从 CSV 读取数据集
- git - 我可以在命令行中自动创建和批准 PR 吗?
- python - 使用 pathlib 和 for 循环重命名文件夹中的文件
- react-native - 如何在本机反应中从另一个组件更新组件
- winapi - 未找到 WMI 处理器序列号(由 OEM 填写)
- powerbi - 使用 PREVIOUSMONTH 过滤行
- c++ - 错误信息:非标准语法;使用 '&' 创建指向成员的指针
- spring - Spring boot 2.2.7 OAuth2 客户端 + 数据库中的用户。如何正确地从数据库中获取 @AuthenticationPrincipal 的权限?