0
指令: get_name_list()函數返回參數name_list中所有名稱的列表,其中參數:to_look_for中提供了一個給定的字母。'append()'和沒有方括號的列表元素之間的區別
問題:如果我刪除'a_list + = [name]'表達式中的'name'的方括號,它將顯示以下錯誤輸出。但是,如果使用方括號或'append()'方法,則會生成正確的輸出(下面的第二個正確輸出)。我想知道爲什麼沒有[名稱]中的方括號,正確的輸出不會產生?
錯誤輸出:
names with d ['J', 'a', 'd', 'e']
names with k ['M', 'i', 'k', 'e', 'y']
錯誤代碼:
def main():
names = ["Jasper", "Jade", "Mikey", "Giani"]
names_d = get_name_list(names, "d")
names_k = get_name_list(names, "k")
print("names with d", names_d)
print("names with k", names_k)
def get_name_list(name_list, to_look_for):
a_list = []
for name in name_list:
#print(name)
if to_look_for in name:
print(name)
a_list += name
#a_list.append(name)
return a_list
main()
正確的輸出:
names with d ['Jade']
names with k ['Mikey']
正確的代碼:
def main():
names = ["Jasper", "Jade", "Mikey", "Giani"]
names_d = get_name_list(names, "d")
names_k = get_name_list(names, "k")
print("names with d", names_d)
print("names with k", names_k)
def get_name_list(name_list, to_look_for):
a_list = []
for name in name_list:
#print(name)
if to_look_for in name:
print(name)
#a_list += name
a_list.append(name)
return a_list
main()
嗨,謝謝你的回答。我有種想法:當一個字符串轉換爲一個列表時,它會像'abc'改變爲['a','b','c']一樣。一個問題:'name'是列表中的一個元素:'name_list',因此'name'應該是一個不是字符串的列表。我想知道爲什麼'名稱'是一個字符串? – jmk 2014-09-22 06:28:13
@jmk'name_list中的名字'表示您將name_list中的每個元素分配給變量名稱。並且name_list中的每個元素都是一個字符串。你可以檢查類型(name_list [0])。例如,如果您希望將第一個元素作爲列表,則應該使用name_list [0:1]。 – 2014-09-22 06:40:05