Maison  >  Article  >  développement back-end  >  analyse de liste python

analyse de liste python

巴扎黑
巴扎黑original
2017-06-27 09:09:411888parcourir

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.

1. Utilisation de base

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

Syntaxe de la version étendue : [expr for iter_val in iterable if cond_expr]

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

2

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

>>> map(lambda x: x*2, range(1,8))

[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

Lorsque vous avez besoin d'obtenir une matrice avec 3 lignes et 5 colonnes, c'est très simple :

>>> [(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!

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