我的问题是如何通过引用传递变量?- 但是我仍然找不到解决下图问题的简单方法:如何从 for 循环中更改外部字符串变量的值?
str1 = 'before'
str2 = 'before'
for i in str1,str2:
print "%s" % (i)
i = "after"
for i in str1,str2:
print "%s" % (i)
感谢以下有用的回复,但它们并没有真正帮助解决我的具体问题,下面的代码不太通用,但更好地反映了我的用例:
import feedparser
d = feedparser.parse('http://feeds.feedburner.com/FrontlineAudiocastPbs?format=xml')
name = d.feed.title[:127]
description = d.feed.subtitle[:255]
strs = [name,description]
for i, s in enumerate(strs):
try:
strs[i] = unicode(strs[i])
except:
strs[i] = "Invalid unicode detected!"
for s in name,description:
print s
您可以看到两个原始字符串变量没有被更新。for 循环旨在检测和处理格式错误的字符串,例如分配给“描述”的字符串。因此,任何“相关”的建议都会受到赞赏。
我喜欢下面列表理解切片分配方法的优雅,理想情况下会使用该技术。