私の質問は、参照によって変数を渡す方法のわずかなバリエーションです。-しかし、以下に示す問題の簡単な解決策を見つけることができません。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
2つの元の文字列変数が更新されていないことがわかります。forループは、「description」への割り当てなど、不正な形式の文字列を検出して処理することを目的としています。したがって、「関連する」アドバイスをいただければ幸いです。
以下のリスト内包表記スライス代入アプローチの優雅さが好きで、理想的にはその手法を使用します。