0
人!Python:list(フィルタオブジェクト)はオブジェクトを空にします
私は、Python 3.6.1を使用して、面白い問題になっています:
私は、items
リストからサブリストを取得するには、単純なitertools.filter()を使用していますし、私は2回だけそれを印刷します。
items = [1,2,3,4,5]
operateVersions = filter(lambda t: t, items)
print ("1: %s" % list(operateVersions))
print ("2: %s" % list(operateVersions))
結果は奇妙です:そう
1: [1, 2, 3, 4, 5]
2: []
、私はlist(operateVersions)
を実行すると、それは何らかの形だけではなく、リストの解釈
を返すのoperateVersions
フィルタオブジェクトを書き換え、それはOK振る舞いですか?それは私を探していません
あなたは 'itertools.filter'を使用していますか?私が知っている限り、python3.xには存在しません(少なくとも、私のマシンにインストールされているpython3.5には存在しません)。 – mgilson
非常に関連しています:https://stackoverflow.com/q/12319025/748858 - 具体的には、イテレータを複数回反復する場合は、リストをイテレータではなく 'operateVersions'に格納する必要があります。 – mgilson
@mgilsonまたはこの場合、毎回 'items'にフィルタを直接適用してください... –