Maison > développement back-end > Tutoriel Python > Comment puis-je traduire les compréhensions de listes imbriquées en boucles for équivalentes en Python ?

Comment puis-je traduire les compréhensions de listes imbriquées en boucles for équivalentes en Python ?

DDD
Libérer: 2024-10-29 07:35:02
original
322 Les gens l'ont consulté

How can I translate nested list comprehensions into equivalent for loops in Python?

Comprendre les compréhensions de listes imbriquées

Les compréhensions de listes imbriquées offrent un moyen concis et puissant de transformer et de combiner des structures de données en Python. La syntaxe de base consiste à placer plusieurs expressions for entre crochets, chacune d'entre elles étant entourée de son propre ensemble d'expressions.

Traduction en boucles For équivalentes

À pour comprendre les compréhensions de listes imbriquées, il est utile de les traduire dans leur équivalent sous forme de boucle. Prenons l'exemple :

[(min([row[i] for row in rows]), max([row[i] for row in rows])) for i in range(len(rows[0]))]
Copier après la connexion

Cela peut être exprimé sous forme de boucle for comme suit :

result = []
for i in range(len(rows[0])):
  inner_result = []
  for row in rows:
    inner_result.append(row[i])
  inner_result2 = []
  for row in rows:
    inner_result2.append(row[i])
  tuple = (min(inner_result), max(inner_result2))
  result.append(tuple)
Copier après la connexion

Généraliser le modèle

Ce qui précède L'exemple suit un modèle général :

[exp2([exp1 for x in xSet]) for y in ySet]
Copier après la connexion

Équivalent pour la boucle :

result = []
for y in ySet:
  inner_result = []
  for x in xSet:
    inner_result.append(exp1)
  exp2_result = exp2(inner_result)
  result.append(exp2_result)
Copier après la connexion

Autres exemples

  • [exp1 for x in xSet pour y dans ySet] est équivalent à result = []; pour x dans xSet : pour y dans ySet : result.append(exp1)
  • [[exp1 for x in xSet] for y in ySet] est équivalent à result = [] ; pour y dans ySet : inner_result = [] ; pour x dans xSet : inner_result.append(exp1); result.append(inner_result)

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal