3

私は読むために本を読んでいます、そしてそれはこれを以下の例でカバーしています。

somelist = list(SPAM)
parts = somelist[0], somelist[-1], somelist[1:3]
'first={0}, last={1}, middle={2}'.format(*parts)

最後の行の終わりに使用されている星を除いて、すべてが明確に見えます。この本はこれの使用法を説明することができず、私は物事を完全に理解せずに進むのが嫌いです。

助けてくれて本当にありがとうございます。

4

4 に答える 4

8

多くの*場合、スターまたはスプラット演算子と呼ばれる演算子は、イテラブルを関数の引数にアンパックするため、この場合は次と同等です。

'first={0}, last={1}, middle={2}'.format(parts[0], parts[1], parts[2])

python docsに詳細があります。

于 2012-05-01T15:19:35.870 に答える
5

これは、引数のアンパック (一種の) 演算子です。

args = [1, 2, 3]
fun(*args)

と同じです

fun(1, 2, 3)

(一部の callable の場合fun)。

関数定義にも星があります。これは、「他のすべての位置引数」を意味します。

def fun(a, b, *args):
    print('a =', a)
    print('b =', b)
    print('args =', args)

fun(1, 2, 3, 4) # a = 1, b = 2, args = [3, 4]
于 2012-05-01T15:21:04.183 に答える
1

単一および二重アスタリスク形式に関する包括的な説明。

于 2012-05-01T16:37:59.967 に答える
0

*関数内で使用された場合、variable*は iterable であり、その関数内で抽出されたことを意味します。ここで'first={0}, last={1}, middle={2}'.format(*parts)実際にこれを表します:

'first={0}, last={1}, middle={2}'.format(parts[0],parts[1],parts[2])

例えば:

 >>> a=[1,2,3,4,5]
 >>> print(*a)
 1 2 3 4 5
于 2012-05-01T15:25:49.470 に答える