1
a = [['jimmy', '25', 'pancakes'], ['tom', '23', 'brownies'], ['harry', '21', 'cookies']]
for i in range(len(a)):
    if (a[i][1] == '20' or a[i][1] == '26'):
        print 'yes'
    else:
        print 'Not found'

この出力はNot found3回です。ifループのすべての反復の出力が同じである場合、リスト全体を反復処理してからNot found1回だけ出力するようにします。

変更a[i][1] == '25'して出力が次のようになった場合:

yes
Not found
Not found

印刷したいのですが、印刷したくyesありませんNot found

4

1 に答える 1

2

for-elseループを探しているのかもしれません。

@Burhan Khalidが提案したように、次のfor i in a場合は代わりに使用してrange(len(a))ください。

a = [['jimmy', '25', 'pancakes'], ['tom', '23', 'brownies'], ['harry', '21', 'cookies']]
for i in a:
    if (i[1] == '25' or i[1] == '26'):
        print 'yes'
else:
    print 'Not found'

出力:

yes
Not found

またはあなたが探しているかもしれませんany()

In [200]: if any((i[1]=='25' or i[1]=='26') for i in a):
    print 'yes'
else:    
    print 'not Found'
   .....: 


yes

In [204]: if any((i[1]=='20' or i[1]=='26') for i in a):
    print 'yes'
else:    
    print 'not Found'
   .....: 


not Found
于 2012-10-24T15:46:58.210 に答える