Go と同等の Python リスト内包表記
Python のリスト内包表記は、シーケンスをフィルタリングおよび変換するための簡潔な方法を提供します。 Go では、フィルター関数を使用して同様の機能を実現できます。ただし、for ループは、より効率的で簡単なアプローチを提供する場合があります。
Python のリスト内包表記を再現するには:
array = [a for a in anotherArray if (some condition)]
Go では、次のフィルター関数を使用できます:
import ( "fmt" "math" "math/big" ) func main() { anotherArray := []int{1, 2, 3, 4, 5, 6, 7, 8, 9} newArray := filter(anotherArray, func(a int) bool { return a%2 == 0 }) fmt.Println(newArray) // [2 4 6 8] }
フィルター関数は 2 つの引数を取ります。フィルターするシーケンスと、どの要素を含めるかを決定する述語関数です。述語を満たす要素のみを含むスライスが返されます。
より複雑な式の場合は、Python の例と同様にラムダ関数を使用できます。
min := func() *big.Int { a := big.NewInt(0) return a }() for i := 0; i < n; i++ { for j := i; j < n; j++ { potentialMin := big.NewInt(0) potentialMin.Abs(a[i].Sub(a[i], b[j])) if potentialMin.Cmp(min) == -1 { min = potentialMin } } }
ただし、GoDocフィルター ライブラリは、for ループの方が効率的であり、パッケージよりも望ましいとアドバイスします。したがって、単純さと読みやすさを考慮して、for ループを使用することをお勧めします。
以上がGo で Python リスト理解機能を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。