

pythonのforループ文中でリストを用いた条件分岐を行いたいと考えています。具体的には、

[code]

    li=[2,4,6,9]
    for i in range(100):
        if i!=2 and i!=4 and i!=6 and i!=9:
    
[/code]

上のif文中の「2」「4」「6」「9」の部分をリストliを使って、表現したいです。  
上記のような書き方じゃなくても構わないです  
よろしくお願いします。


CC BY-SA 3.0
2015-11-18T06:42:02.733
18967
2015-11-18T07:40:10.153
2015-11-18T06:54:44.300
13312
13312
question
python
pythonのforループ文中でリストを用いた条件分岐を行いたい


  
[not in](http://docs.python.jp/3/reference/expressions.html#not-in) が使えます。

> 演算子 in および not in は、帰属 (membership) を調べます。 x in s の評価は、 x が s  
>  の要素であれば真となり、そうでなければ偽となります。 x not in s は x in s の否定 (negation) を返します。
[code]

    i not in li
    
[/code]


CC BY-SA 3.0
2015-11-18T06:54:16.633
18969
2015-11-18T06:54:16.633
3054
18967
answer


A1

[code]

    li=[2,4,6,9]
    for i in range(100):
        if i not in li:
            # ここにやりたいことを実装
    
[/code]

A2

[code]

    li=[2,4,6,9]
    for i in [x for x in range(100) if x not in li]:
        # ここにやりたいことを実装
    
[/code]


CC BY-SA 3.0
2015-11-18T07:26:13.913
18971
2015-11-18T07:26:13.913
806
18967
answer


for文内で書くならイテレータのほうがいいですね。

[code]

    for i in (x for x in range(100) if x not in li):
    
[/code]

または

[code]

    for i in filter(lambda x: x not in li, range(100)):
    
[/code]


CC BY-SA 3.0
2015-11-18T07:40:10.153
18972
2015-11-18T07:40:10.153
13227
18967
answer