【发布时间】:2020-08-07 13:32:34
【问题描述】:
我是python3的新手,最近一直在练习列表和函数。
在这里,我将字符串存储在一个列表中,然后将该列表传递给一个应该连接/添加字符串的函数,如下所示:
def hello(names):
for name in names:
name = "Hello "+name+"!"
return names
liiist = ["L Lawliet", "Nate River", "Mihael Keehl"]
liiist = hello(liiist)
print(liiist)
但不是得到
['Hello L Lawliet!', 'Hello Nate River!', 'Hello Mihael Keehl!'],我只收到['L Lawliet', 'Nate River', 'Mihael Keehl'] 什么都没发生。另外,PyCharm 提醒我 Local variable 'name' value is not used
我也尝试过这个问题,结果发现它在函数之外也不起作用:
vars = ["trying", "to", "rewrite", "lists"]
for var in vars:
var = var + " hello"
print(vars)
输出:['trying', 'to', 'rewrite', 'lists']
我已经找到了解决这个问题的方法,但我很不高兴我只是偶然/大量的反复试验找到了解决方案。 我想我不明白为什么 python 产生这样的结果可能会影响我以后的职业生涯。有人可以解释为什么会发生这种情况吗?
另外,如果你好奇,这里是我找到的解决方法:
def hello(names):
counter = 0
for name in names:
name = name + " the Great"
names[counter] = names
counter += 1
return names
names = ["L Lawliet", "Nate River", "Mihael Keehl"]
names = hello(names)
print(names)
给我一个比上面那个更有效的代码也可以帮助:)
【问题讨论】:
标签: python-3.x list string-concatenation