Xscatとyscatの2つのリストがあります。リスト内包表記で、xscatとyscatでそれぞれxとyを取得したいと思います。結果のリストには、peaks([x[0], y[0]]), peaks([x[1], y[1]])
などが含まれている必要があります
xscat=yscat=[-1, -1.5,5]
[peaks([x,y]) for x,y in xscat,yscat]
内包表記を使用して解決策を見つけることができますか?またはそれを置く他の方法(地図)?
Zip
はあなたが望むものです:
[peaks([x,y]) for x,y in Zip(xscat,yscat)]
Zip
を使用する必要があります:
[peaks([x,y]) for (x,y) in Zip(xscat, yscat)]
あなたの例からZip()を使いたいと思いますが、本当にやりたいことがxscatとyscatのすべての可能な組み合わせを繰り返すことである場合に備えて、もっとやるべきことがあります...
したがって、(xscat [0]、yscat [0])、(xscat [0]、yscat [1])、(xscat [0]、yscat [2])などが必要な場合は、最初にネストされた理解:
((x、y)for x in xscat for y in yscat)
すべてのペアを生成し、
[xscatのxのpeaks(x、y)yscatのyの場合]
すべての順列が必要な場合は、解が得られるはずです。
また、Zip/mapに注意してください-リスト(xscatとyscat)が同じ長さでない場合は、結果が異なります-必要なソリューションが得られるものを選択してください。
Zipを試してください: http://docs.python.org/library/functions.html#Zip
[peaks(x) for x in Zip(zscat, yscat)]
編集
これは、ピークがタプルを受け入れることができることを前提としています。