2013-08-06 7 views
11

は、私は、1つのまたは2つの要素のいずれかを有することができるリストがあるとしこの第2の値に応じてフラグとして設定する。チェック

第2要素が存在するかどうかを確認するにはどうすればよいですか?

すでにlen(mylist)を使用しています。 2の場合、それは問題ありません。それは動作しますが、私は2番目のフィールドが正確に "コメント"かどうかを知りたいです。

私はその後、この溶液に来た:

>>> try: 
...  c=a.index("comment") 
... except ValueError: 
...  print "no such value" 
... 
>>> if c: 
... print "yeah" 
... 
yeah 

しかし、あまりにも長く見えます。それが改善できると思いますか?私はそれができると確信していますが、Python Data Structures Documentationから適切な方法を見つけることができません。

答えて

7

何について:

'comment' in mylist 

か、もし:

>>> mylist = ["important", "comment"] 
>>> c = len(mylist) == 2 and mylist[1] == "comment" 
>>> c 
True 
>>> 
>>> mylist = ["important"] 
>>> c = len(mylist) == 2 and mylist[1] == "comment" 
>>> c 
False 
6

使用inオペレータ:

>>> mylist=["important", "comment"] 
>>> "comment" in mylist 
True 

ああ!あなたが言った部分を逃しただけで、"comment"を2番目の要素にしたいだけです。そのためにあなたが使用することができます。

len(mylist) == 2 and mylist[1] == "comment" 
23

あなたはin演算子を使用することができます。たとえば

len(mylist) == 2 and mylist[1] == "comment" 

po sitionが重要で、スライスを使用します。リストは長さ2 第二の要素である場合サイズ一つ、二つまたはそれ以上であり、かつ唯一Trueあるリストの

mylist[1:] == ['comment'] 

後者の作品は'comment'に等しいです。 :

>>> test = lambda L: L[1:] == ['comment'] 
>>> test(['important']) 
False 
>>> test(['important', 'comment']) 
True 
>>> test(['important', 'comment', 'bar']) 
False