1

たとえば、Pythonで1D配列がある場合:

a = (10,20,30,40,50)

これに整数、たとえば2を掛けて、次のようにするにはどうすればよいですか。

b = (20,40,60,80,100)

私が試してみました:

b = a*2 

しかし、それは何もしていないようです。

4

3 に答える 3

3

タプルは不変です。実際の配列の内容を変更する場合は、([]の代わりに)リストを使用してください。()

タプルの2倍の要素を持つ新しいリストを作成するには、タプルをループして各要素を乗算します。

b = []
for num in a:
    b.append(2*num)

これはに短縮することができます

b = [2*num for num in a]

リスト内包表記を使用します。

最終結果をタプルのままにしたい場合は、次を使用できます。

b = tuple([2*num for num in a])

サードパーティのライブラリを使用せずに元の構文に到達できる最も近いものは、

>>> map(lambda n: n*2, [1,2,3])
[2, 4, 6]

f(n) = 2nこれは基本的に、「関数を取得して、リストに適用する場合」という空想的な言い方です[1,2,3]

于 2012-09-01T14:52:53.120 に答える
3

以下を使用してください。

>>> b = [2 * i for i in a]
>>> b
[20, 40, 60, 80, 100]

a * 2セットを複製します:

>>> a = (10,20,30,40,50)
>>> a * 2
(10, 20, 30, 40, 50, 10, 20, 30, 40, 50)
于 2012-09-01T14:53:05.417 に答える
3

数値をより自然に操作する方法として、numpyを検討することをお勧めします。numpyを使用すると、コードは次のようになります。

import numpy as np
a = np.array([10,20,30,40,50])
b = a*2
于 2012-09-01T14:56:47.067 に答える