0

これがPythonコードです

languages = ["HTML", "JavaScript", "Python", "Ruby"]
print filter(lambda x: x == "Python",languages)

出力は次のとおりです。

[u'Python']

どこuから来て、それを回避する方法。

必要な出力:

['Python']

アップデート::

私はコードアカデミーでこれを試していました。dereは彼らのソフトウェアのバグだったと思います。

4

3 に答える 3

1

入力には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

于 2013-02-25T20:29:36.677 に答える
0

簡単な変換は次の方法で行われます。

languages = ["HTML", "JavaScript", "Python", "Ruby"]
flt = filter(lambda x: x == "Python",languages)
print [str(X) for X in flt]

出力

['Python']

はい、単純なstr()変換を行っています。

于 2013-02-25T20:46:17.880 に答える
-1

uUnicodeの略で、次のコマンドで通常の文字列に変換できますstr(filter(...))

于 2013-02-25T20:31:05.427 に答える