4

重複の可能性:
Python: リスト要素ごとに、リスト全体に関数を適用します。

たとえば、配列またはリストがあるとしましょう

myList = [a,b,c,d]

乱数を生成する関数があります。

リストを調べて、そのリスト内の各アイテムが関数によって生成された乱数を受け取り、アイテムに追加されるようにするにはどうすればよいですか?

したがって、'a' がリストの 1 番目であるとすると、'a' は乱数 (5 としましょう) が生成される関数に入り、それ自体を 'a' に追加します。結果は `[a+5, b+ .......].

4

4 に答える 4

4

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

[func(elem) for elem in lst]

特定の例では、値を合計する式を使用できます。

[elem + func() for elem in myList]

wherefunc()は乱数を返します。

于 2012-10-10T08:40:22.693 に答える
1

map()関数を iterable のすべての項目に適用し、結果のリストを返す関数を使用します。

def myfunc(x):
     return x ** 2

>>> map(func, [1,2,3])
[1, 4, 9]
于 2012-10-10T08:41:28.897 に答える
0

整数について話していると思います。この小さなスクリプトは、あなたが望むことをするはずです:

import random

def gen_rand(number):
    generated = random.randint(1, 10) # you can specify whatever range you want
    print generated
    return number + generated

myList = [1,2,3,4,5]
print str(myList)
myList = [gen_rand(item) for item in myList]
print str(myList)

または、for ループの代わりに map 関数を使用することもできます。交換

myList = [gen_rand(item) for item in myList]

myList = map(gen_rand,myList)
于 2012-10-10T08:58:13.457 に答える
0

ライナーが1つ必要な場合:-)

myList = [1,2,3,4]    
[ i + map(lambda i: random.randint(10,20), myList)[index] for index, i in enumerate(myList) ]
于 2012-10-10T13:25:34.310 に答える