Mar*_*rov 6 python arrays function
我想创建一个函数,在数组中的每个字符串前面添加一个特定的单词.最后我想改变数组.我有这个代码:
def make_great(magicians):
"""Change magicians"""
for magician in magicians:
magician = "the Great" + magician
magicians = ["hudini", "angel", "teller", "anderson", "copperfield"]
make_great(magicians)
print(magicians)
Run Code Online (Sandbox Code Playgroud)
此代码不会更改数组.如何使我的功能工作?
jul*_*enc 12
您可以使用enumerate索引和值循环遍历列表,然后使用索引将值直接更改为列表:
def make_great(magicians):
for index, magician in enumerate(magicians):
magicians[index] = "the Great " + magician
Run Code Online (Sandbox Code Playgroud)
小智 6
当您使用 for-each 循环时:
def make_great(magicians):
for magician in magicians:
magician = "The Great" + magician
Run Code Online (Sandbox Code Playgroud)
你实际上是在创造一个新的弦乐魔术师;所以修改它不会像你发现的那样修改原始数组。
相反,迭代数组中的项目:
def make_great(magicians):
for i in range(len(magicians)):
magicians[i] = "The Great" + magicians[i]
Run Code Online (Sandbox Code Playgroud)
或者使用上面建议的枚举器。请参阅:如何在 for 循环期间修改列表条目?
enumerate 在这种情况下,最好的做法是修改数组中每个索引处的值。
for i, magician in enumerate(magicians):
magicians[i] = "the Great " + magician
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4982 次 |
| 最近记录: |