python - 如何在 CodeHS 8.4.12:图书馆员,第 2 部分中仅打印姓氏?
问题描述
这就是我应该做的:在图书管理员练习中,您要求用户输入五个姓氏,然后按排序顺序打印这些名字的列表。
在本练习中,您将要求用户提供五个全名。您仍然应该按排序顺序打印姓氏列表。
每次从用户那里检索姓名时,都应该使用 split 方法和正确的索引来仅提取姓氏。然后,您可以将姓氏添加到您最终将排序和打印的姓氏列表中。
以下是您的程序运行示例的样子:
Name: Maya Angelou
Name: Chimamanda Ngozi Adichie
Name: Tobias Wolff
Name: Sherman Alexie
Name: Aziz Ansari
['Adichie', 'Alexie', 'Angelou', 'Ansari', 'Wolff']
这是我现在的代码:
name_1 = input("Name: ")
name_1.split()
name_2 = input("Name: ")
name_2.split()
name_3 = input("Name: ")
name_3.split()
name_4 = input("Name: ")
name_4.split()
name_5 = input("Name: ")
name_5.split()
my_list = [name_1[-1], name_2[-1], name_3[-1], name_4[-1], name_5[-1]]
my_list.sort()
print my_list
我的代码现在只打印最后一个字母,而不是最后一个单词。如何让我的代码打印最后一个单词?
解决方案
你的问题是在一个只接受该字符串的最后一个字母的字符串上执行 some_string[-1] 。解决方案是在字符串上使用 some_string.split() 将其按空格拆分为值列表,然后使用 some_list[-1] 获取该列表的最后一个元素。
names_list = []
for i in range(0, 5):
names_list.append(input("Name: "))
sorted_last_names = sorted([name.split()[-1] for name in names_list])
print(sorted_last_names)
推荐阅读
- java - Java - 使用另一个 jvm 运行类的命令行
- python - 带有批处理请求的 Facebook 图形 API
- javascript - 在 GWT 中使用 javaScript 将值插入 CKEditor 设置值
- opengl - 使用 OpenGL GLSL 漫射光
- c++ - 解构 c++ 类运算符重载和构造函数初始化列表
- ios - 未知类型名称'thread_policy_flavor_t';你的意思是“task_policy_flavor_t”吗?
- apache-kafka - 如何使用 Reactor 执行无限 Kafka 轮询?
- linux - CallerFilePathAttribute 未在 azure 的 linux 容器应用服务上返回具有有效目录分隔符的文件路径
- r - 如何按顺序找到向量的最小值
- oracle - PLSQL 语句不检索数据库中存储的不同字符集(垃圾)数字类型