production lsit (production de liste)

1. Comment créer une liste

Après notre étude précédente, nous savons tous comment créer une liste, mais dans certains cas, il est trop compliqué de créer une liste sous forme de devoir, notamment des listes régulières, qui doit être écrit un par un, attribuer des valeurs une par une est trop gênant. Par exemple, vous souhaitez générer une liste de 30 éléments et les éléments à l'intérieur sont compris entre 1 et 30. On peut écrire comme ceci :

# -*- coding: UTF-8 -*-
list1=list ( range (1,31) )
print(list1)

Le résultat de sortie :

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]

Cela a déjà été mentionné : Par exemple, il existe un exemple d'impression de la table de multiplication. Cette méthode ne nécessite que quelques lignes de code. détails. Chapitre précédent : Exemples complets d'instructions conditionnelles et d'instructions de boucle

Cependant, si la génération de liste est utilisée, la table de multiplication peut être générée en une seule ligne de code. Regardez le code spécifiquement :

print('\n'.join([' '.join ('%dx%d=%2d' % (x,y,x*y)  for x in range(1,y+1)) for y in range(1,10)]))

Le résultat final :

1x1= 1
1x2= 2 2x2= 4
1x3= 3 2x3= 6 3x3= 9
1x4= 4 2x4= 8 3x4=12 4x4=16
1x5= 5 2x5=10 3x5=15 4x5=20 5x5=25
1x6= 6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36
1x7= 7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49
1x8= 8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64
1x9= 9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81

Cependant, ici, nous devons d'abord comprendre comment créer la génération de liste

2 Création de la génération de liste

Tout d'abord, la syntaxe. de la génération lsit est :

[expr for iter_var in iterable] 
[expr for iter_var in iterable if cond_expr]

La première syntaxe : itérer d'abord tout le contenu de l'itérable Pour chaque itération, mettre le contenu correspondant de l'itérable dans iter_var, puis appliquer le contenu de iter_var dans l'expression, et enfin utiliser la valeur calculée. de l'expression pour générer une liste.

Deuxième syntaxe : une instruction de jugement est ajoutée. Seul le contenu qui remplit les conditions est mis dans iterable et le contenu correspondant est mis dans iter_var, puis le contenu de iter_var est appliqué à l'expression, et enfin une liste est générée en utilisant la valeur calculée de l’expression.

En fait, ce n'est pas difficile à comprendre, car il s'agit d'une génération de liste, elle doit donc être entourée de [], puis les instructions à l'intérieur mettent les éléments à générer devant, suivis d'une instruction de boucle for ou une instruction de boucle for et une instruction de jugement.

Exemple :

# -*- coding: UTF-8 -*-
lsit1=[x * x for x in range(1, 11)]
print(lsit1)

Résultat de sortie :

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Comme vous pouvez le constater, la liste peut être créée en mettant les éléments x * x à générer devant, suivis d'une boucle for. Alors qu'en est-il de la forme de if après la boucle for ? Comment comprendre :

# -*- coding: UTF-8 -*-
lsit1= [x * x for x in range(1, 11) if x % 2 == 0]
print(lsit1)

Le résultat de sortie :

[4, 16, 36, 64, 100]

Cet exemple consiste à trouver la racine carrée d'un nombre pair de 1 à 10. Comme mentionné ci-dessus, x * x est l'élément à générer, et cette dernière partie est en fait, dans la boucle for, il y a une instruction de jugement if imbriquée.

Donc, avec cette connaissance, nous pouvons également deviner qu'il existe également des boucles for imbriquées à l'intérieur de la boucle for. Exemple spécifique :

# -*- coding: UTF-8 -*-
lsit1= [(x+1,y+1) for x in range(3) for y in range(5)] 
print(lsit1)

Résultat de sortie :

[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5)]

En fait, il n'est pas difficile de comprendre cette chose une fois que l'on sait comment la formule de production de liste est combinée. Parce que la génération de liste combine simplement les points de connaissances précédemment appris et les remplace par une manière d'écrire plus concise.

Formation continue
  • Recommandations de cours
  • Téléchargement du didacticiel