簡體   English   中英

如何在 CodeHS 8.4.12 中僅打印姓氏:圖書管理員,第 2 部分?

[英]How do I print only the last names on CodeHS 8.4.12: Librarian, Part 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)

這比上面的答案更容易。 對我來說,這樣更清楚。

name_list = []
for i in range (5):
    input_name = input("Name: ")
    name_list.append(input_name.split()[-1])
   

name_list.sort()
print(name_list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM