6

以下では:

name = 'TODD'
chars = set('AEIOU')
for ii in range(-1, int(math.copysign(len(name) + 1, -1)), -1):
    if any((cc in chars) for cc in name[ii]):
        print 'Found'
    else:
        print 'Not Found'

any(...)の中にはジェネレーターオブジェクトがあることを理解しています。私が理解していないのは、括弧がないことです-括弧がany()関数に属している場合、ジェネレータ式の周りに別の括弧のセットがあるべきではありませんか?

ありがとう。

4

4 に答える 4

13

引数が 1 つのみの関数呼び出しで使用する場合は、括弧を省略できます。ジェネレータ式の構文では、明示的に許可されています。

引数が 1 つだけの呼び出しでは、括弧を省略できます。詳細については、セクション呼び出しを参照してください。

于 2012-07-26T15:30:02.263 に答える
2

式が括弧内にある唯一のものである場合は、ジェネレーター式の括弧を省略することができます。

ドキュメントから:

引数が 1 つだけの呼び出しでは、括弧を省略できます。

于 2012-07-26T15:30:24.517 に答える
2

いいえ、余分な括弧は必要ありません。実際、テストしている「ブール式」には常に括弧が必要です。次の 2 つの簡単な例を参照してください。

In [37]: any(i > 10 for i in range(19))
Out[37]: True

In [38]: all(i > 10 for i in range(19))
Out[38]: False

あなたが持っているのは、単一の引数(ジェネレーター式)を持つ関数呼び出しであるため、括弧は必要ありません。詳細については、ジェネレータ式のドキュメントを参照してください。

于 2012-07-26T15:30:44.853 に答える
1

引数が 1 つだけの関数呼び出し (そのジェネレーター式) の場合、ドキュメントごとにそれらは必要ありません

引数が 1 つだけの呼び出しでは、括弧を省略できます。詳細については、セクション呼び出しを参照してください。

于 2012-07-26T15:30:45.127 に答える