0

私はリストを持っています

a = [(1,2),(1,4),(2,6),(1,8),(3,6),(1,10),(1,6)]

私がそう言うなら:

for x in a:
    if x[0]==1:
        print x

期待される結果が得られます: (1,2) (1,4) (1,8) (1,10) (1,6)

ただし、(1,x) の形式のすべてのタプルの出現をすべて削除したいので、

for x in a:
   if x[0]==1:
       a.remove(x)

私はすべての出現を削除する必要があると考えました.しかし、私が言うとき

Print a

[(1,4),(2,6),(3,6),(1,6)] を取得します

すべてのタプルが削除されたわけではありません。どうすればいいのですか。??ありがとう

4

4 に答える 4

0

膨大な量のデータを扱っている場合は、ジェネレーター式を使用して実行できます。

a = [(1,2),(1,4),(2,6),(1,8),(3,6),(1,10),(1,6)]

# create a generator
a = ((x,y) for x, y in a if x == 1)

# simply convert it to a list if you need to...
>>> print list(a)
[(1, 2), (1, 4), (1, 8), (1, 10), (1, 6)]
于 2013-10-06T09:05:29.347 に答える