Maison  >  Article  >  développement back-end  >  Comment obtenir la fonctionnalité de compréhension de liste Python dans Go ?

Comment obtenir la fonctionnalité de compréhension de liste Python dans Go ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-19 04:20:02576parcourir

How to Achieve Python List Comprehension Functionality in Go?

Équivalent à la compréhension de liste Python dans Go

La compréhension de liste Python fournit un moyen concis de filtrer et de transformer des séquences. Dans Go, la fonction de filtre peut être utilisée pour obtenir des fonctionnalités similaires. Cependant, les boucles for peuvent offrir une approche plus efficace et plus simple.

Pour reproduire la compréhension de la liste Python :

array = [a for a in anotherArray  if (some condition)]

Dans Go, vous pouvez utiliser la fonction de filtre suivante :

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]
}

La fonction filtre prend deux arguments : la séquence à filtrer et une fonction prédicat qui détermine les éléments à inclure. Il renvoie une tranche contenant uniquement les éléments qui satisfont le prédicat.

Pour des expressions plus complexes, vous pouvez utiliser des fonctions lambda, similaires à l'exemple 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
        }
    }
}

Cependant, le GoDoc pour la bibliothèque de filtres indique que les boucles for sont plus efficaces et préférables au package. Par conséquent, pour des raisons de simplicité et de lisibilité, l'utilisation de boucles for est recommandée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn