《父與子的程式設計之旅(第3版)》第12章習題答案

謝婷婷發表於2020-08-27

本文針對第12章章末的習題提供參考答案。當然,有些習題的正確答案不止一個,特別是“動手試一試”,不過你可以通過這些答案來判斷自己的思路是否正確。

第12章 收集起來——列表與字典

測試題

(1) 可以使用append()insert()extend()在列表中新增元素。

(2) 可以使用remove()pop()del從列表中刪除元素。

(3) 可以採用下面任意一種做法。

  • 用分片操作符建立出列表的一個副本:new_list = my_list[:]。然後對新的副本列表進行排序:new_list.sort()
  • sorted()函式直接進行排序:new_list = sorted(my_list)

(4) 可以使用in關鍵字判斷列表中是否存在特定的值。

(5) 可以使用index()方法確定值在列表中的位置。

(6) 元組是與列表類似的集合,只不過元組不能修改。元組是不可改變的,而列表是可改變的。

(7) 可以採用多種方法來建立表格。

使用巢狀的中括號。

>>> my_list = [[1, 2, 3], ['a', 'b', 'c'], ['red', 'green', 'blue']]

使用append()方法追加一個列表。

>>> my_list = []
>>> my_list.append([1, 2, 3])
>>> my_list.append(['a', 'b', 'c'])
>>> my_list.append(['red', 'green', 'blue'])
>>> print(my_list)
[[1, 2, 3], ['a', 'b', 'c'], ['red', 'green', 'blue']]

先建立單個列表,再把這些列表合併起來。

>>> list1 = [1, 2, 3]
>>> list2 = ['a', 'b', 'c']
>>> list3 = ['red', 'green', 'blue']
>>> my_list = [list1, list2, list3]
>>> print(my_list)
[[1, 2, 3], ['a', 'b', 'c'], ['red', 'green', 'blue']]

(8) 可以使用兩個索引來獲取表格中的值:

my_list = [[1, 2, 3], ['a', 'b', 'c'], ['red', 'green', 'blue']]
my_color = my_list[2][1]

這個答案是'green'

(9) 字典是鍵–值對的集合。

(10) 可以通過指定鍵和值的方式在字典中新增元素。

phone_numbers['John'] = '555-1234'

(11) 要通過鍵在字典中查詢某個元素,可以使用索引。

print(phone_numbers['John'])

動手試一試

(1) 下面這個程式會獲取5個名字,並把它們放在一個列表中,然後全部列印出來。

nameList = []
print("Enter 5 names (press the Enter key after each name):")
for i in range(5):
    name = input()
    nameList.append(name)
print("The names are:", nameList)

(2) 下面這個程式會列印出初始列表和排序後的列表。

nameList = []
print("Enter 5 names (press the Enter key after each name):")
for i in range(5):
    name = input()
    nameList.append(name)
print("The names are:", nameList)
print("The sorted names are:", sorted(nameList))

(3) 下面這個程式只列印列表中的第3個名字。

nameList = []
print("Enter 5 names (press the Enter key after each name):")
for i in range(5):
    name = input()
    nameList.append(name)
print("The third name you entered is:", nameList[2])

(4) 下面這個程式可以讓使用者隨機替換列表中的一個名字。

nameList = []
print("Enter 5 names (press the Enter key after each name):")
for i in range(5):
    name = input()
    nameList.append(name)
print("The names are:", nameList)
print("Replace one name. Which one? (1-5):", end=' ')
replace = int(input())
new = input("New name: ")
nameList[replace - 1] = new
print("The names are:", nameList)

(5) 下面這個程式可以讓使用者建立可查詢的Python字典,其中包含單詞及其含義。當字典中不存在所查單詞時,程式會予以提示。

user_dictionary = {}
while 1:
    command = input("'a' to add word, 'l' to lookup a word, 'q' to quit ")
    if command == "a":
        word = input("Type the word: ")
        definition = input("Type the definition: ")
        user_dictionary[word] = definition
        print("Word added!")
    elif command == "l":
        word = input("Type the word: ")
        if word in user_dictionary.keys():
            print(user_dictionary[word])
        else:
            print("That word isn't in the dictionary yet.")
    elif command == 'q':
        break

相關文章