J'ai la suivante for
boucle et if
condition. Je voudrais le changer à une ligne de code en utilisant la compréhension de liste de Python. Mais, je n'ai aucune idée pourquoi cela ne fonctionne pas comme, il dit erreur de syntaxe avec '^' pointant sur l'instruction if.Liste de compréhension avec si et pour la boucle
d'origine:
for i in range(len(lines)):
if (lines[i].find('('))!=-1:
lines[i] = lines[i][0:(lines[i].find('(')-1)]
changé à:
lines = [[lines[i][0:(lines[i].find('(')-1)]] for (i in range(len(lines))) if ((lines[i].find('('))!=-1)]
Je voulais juste utiliser la méthode de compréhension de la liste qui est dit être l'une des caractéristiques de python. J'espère apprendre quelque chose de nouveau, car je n'ai pas d'expérience en programmation. Merci pour l'aide, les amis!
Vous Supprimez toutes les parenthèses, dont certaines sont incorrectement placées de manière syntaxique Supprimez toutes les parenthèses sauf celles des appels de fonction – DyZ
Pour commencer, vous pouvez essayer de supprimer les parenthèses autour de '(i dans la plage (len (lignes)))' ... –
Fondamentalement, cependant, vous voulez probablement utiliser une boucle simple pour cela, donc vous pouvez garder une référence à 'lines [i] .find ('(') 'au lieu de le recalculer encore et encore, ce qui est très inefficace. Listez les compréhensions mais ne les utilisez pas si elles rendent votre code illisible (que vous approchez rapidement) ou qu'elles vous forcent à être inefficaces (comme dans ce cas) –