如何仅在CodeHS 8.4.12:图书馆员,第2部分上打印姓氏?

时间:2019-05-14 15:43:52

标签: python

这是我应该做的: 在图书馆员练习中,您要求用户提供五个姓氏,然后按排序顺序打印这些名字的列表。

在本练习中,您将要求用户输入五个全名。您仍应按排序顺序打印姓氏列表。

每次从用户检索名称时,都应该使用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

我的代码现在仅打印最后一个字母,而不打印最后一个单词。如何获取我的代码以打印最后一个字?

1 个答案:

答案 0 :(得分:0)

您的问题是对仅使用该字符串的最后一个字母的字符串执行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)