これがPythonコードです
languages = ["HTML", "JavaScript", "Python", "Ruby"]
print filter(lambda x: x == "Python",languages)
出力は次のとおりです。
[u'Python']
どこuから来て、それを回避する方法。
必要な出力:
['Python']
アップデート::
私はコードアカデミーでこれを試していました。dereは彼らのソフトウェアのバグだったと思います。
入力にはunicodeテキストではなくstrテキストが含まれています。はリテラルu''を示します。unicode
これはおそらく正常であり、どこからlanguagesリストを取得したかによって完全に異なります。それ以外の場合は機能しています。
リンク先の CodeAcademy 演習は、実際には壊れています。Pythonstrの入力が表示されますが、出力はunicode. バグとして報告する必要があります。
すべてを次のようにマッピングすることで、このバグを回避できますstr。
print filter(lambda x: x=='Python', map(str, languages))
またはの出力をにマッピングすることfilterによりstr():
print map(str, filter(lambda x: x=='Python', languages))
入力はASCII文字のみを使用するため、これはこの場合に機能します。通常は、代わりにエンコーディングを指定して明示的にエンコードunicodeします。 Python Unicode HOWTOを参照してください。str
簡単な変換は次の方法で行われます。
languages = ["HTML", "JavaScript", "Python", "Ruby"]
flt = filter(lambda x: x == "Python",languages)
print [str(X) for X in flt]
出力
['Python']
はい、単純なstr()変換を行っています。
uUnicodeの略で、次のコマンドで通常の文字列に変換できますstr(filter(...))