Pythonには、次の例のようにいくつかの条件で目的の出力をフィルタリングするフィルタメソッドがあります。フィルタリングはどのようにしてPythonで動作しますか?
>>> s = "some\x00string. with\x15 funny characters"
>>> import string
>>> printable = set(string.printable)
>>> filter(lambda x: x in printable, s)
'somestring. with funny characters'
例はlinkから取られます。今、私がPython IDEで同様のことをしようとしているときには、'somestring. with funny characters'
という結果を返します。それはthisを返します。<filter object at 0x0000020E1792EC50>
。 IDEでは、単純なEnterキーを使用することはできません。そのため、このコード全体をフィルタリングして実行しています。私が間違っているところは?ありがとう。
実際にはpython2の 'filter'特殊なケースの文字列!さもなければ 'filter(lambda x:True、" abc ")の結果は' ['a'、 'b'、 'c'] 'になりますが、実際には' abc'です。 – Bakuriu
正しいことを期して、Python 2でフィルタリングすると、リスト、タプル、または文字列を返すことができます。 –
@BurhanKhalidそうではありません。特別な場合は 'tuple'と' str'です。たとえば 'filter(lambda x:True、{1,2,3})== [1,2,3]'のように 'set'は' list'sに変換されます。また、 'namedtuple'を持っていれば、それは普通の' tuple'などに変換されます。 – Bakuriu