Maison > Article > développement back-end > analyse de liste python
Analyse de liste, principalement utilisée pour créer dynamiquement des listes
Cet article parle principalement de l'utilisation de lambda, map() et filter() combinées avec des instructions d'analyse de liste
List Les bases la syntaxe de l'analyse est la suivante : [expr for iter_var in iterable]
Le cœur de cette instruction est la boucle for, qui itère toutes les entrées de l'objet itérable. L'expression précédente est appliquée à chaque membre de la séquence et la valeur du résultat final est la liste produite par l'expression.
Prenons un exemple
Test en veille :
>>> pour i in range(0,8)]
[0,1,2,3,4,5,6,7]
où i est expr dans la syntaxe de base C'est aussi iter_val ; d'une autre manière, nous effectuons une opération sur la valeur à l'intérieur et multiplions tous les membres par 2
>>> />[0, 2, 4, 6, 8, 10, 12, 14]
Il s'agit d'une analyse de liste écrite entièrement selon la syntaxe de base
2. Ajoutez des conditions de jugement après l'instruction de recyclage
Nous pouvons également développer et ajouter quelques instructions après, filtrer la liste par exemple, nous avons seulement besoin du nombre dans cette valeur qui peut être divisible par 2
>>> [i pour i in range(1,8) if i%2 == 0]
[ 2 , 4, 6]
Cette instruction est similaire à l'utilisation d'un filtre, nous pouvons donc également utiliser la fonction de filtre intégrée de Python pour obtenir la même valeur
>> ;> (lambda x:x%2==0, range(1,8))
>>> pour i dans l: i
4
6
Mais j'ai trouvé non, il y a quelques différences car je n'ai pas imprimé la liste directement. Pourquoi? Parce que la valeur de retour du filtre est un générateur, le générateur est
et ne peut pas connaître toutes les valeurs. Il ne peut obtenir la valeur suivante que par itération
3. est utilisé pour obtenir les mêmes résultats que l'analyse de liste
[2, 4, 6 , 8, 10, 12, 14]
L'utiliser peut obtenir le même effet que [x * 2 for x in range(1,8)], mais utilisez ce dernier Plus efficace que map()
4. Générer une matrice
>>> [(x,y) pour x dans la plage (0,3) pour y dans la plage (0,5)]
[(0, 0), (0, 1), ( 0 , 2), (0, 3), (0, 4),
(1, 0), (1, 1), (1, 2), (1, 3), (1, 4 ),
(2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]
Vous pouvez également trouver plus d'informations sur l'analyse de la liste de références dans PEP 202
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!