我需要幫助除錯此代碼。程式應該通過在每個專案后添加短語“the Great”來修改串列(魔術師)。呼叫 show_magicians() 以查看串列實際上已被修改。
#Add 'Great' suffix to magician names
def make_great(magicians):
print("Greatifying Magicians...")
magicians = ['{0} the Great'.format(mag) for mag in magicians]
#Display magician names
def show_magicians(magicians):
for magician in magicians:
print(magician)
magicians = ["Andrea Haddad", "Shroomy", "Arkos Martinez"]
make_great(magicians)
show_magicians(magicians)
Show_magicians() 應該列印串列的專案,然后是“偉大的”。但是,這是我遇到的輸出。
Greatifying Magicians...
Andrea Haddad
Shroomy
Arkos Martinez
uj5u.com熱心網友回復:
就地修改
magicians[:] = ['{0} the Great'.format(mag) for mag in magicians]
實際更改值需要就地修改。當您使用 equals 賦值時,它會創建一個我們不想要的新變數。雖然這看起來很尷尬,但放置[:], 這意味著我們實際上是在分配給串列本身,而不是創建一個新實體。您可以進一步研究:
在這里:https : //datatofish.com/modify-list-python/
并得到一些練習:
在這里:https : //leetcode.com/problems/remove-element/
uj5u.com熱心網友回復:
您必須回傳make_great函式的值,然后為其分配一個變數。
def make_great(magicians):
print("Greatifying Magicians...")
magicians = ['{0} the Great'.format(mag) for mag in magicians]
return magicians
#Display magician names
def show_magicians(magicians):
for magician in magicians:
print(magician)
magicians = ["Andrea Haddad", "Shroomy", "Arkos Martinez"]
magicians = make_great(magicians)
show_magicians(magicians)
輸出:
Greatifying Magicians...
Andrea Haddad the Great
Shroomy the Great
Arkos Martinez the Great
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/368261.html
