Quelqu'un peut-il traduire cette compréhension de la liste en plusieurs lignes, avoir vraiment des difficultés à comprendre!
3 Réponses :
Il devrait s'agir s'il est étendu. J'ai créé une liste appelée temp_list code> et j'ai ajouté le
Imprimer code> pour plus de clarté.
temp_list = []
for x, i in enumerate(friends):
if (x+1) % action:
temp_list.append(i)
friends = temp_list
print(friends)
Il ressemble à ceci lors de l'élargissement:
C'est faux; Comme il n'utilise pas une liste temporaire code> code>, cela goutte la référence antérieure à amis code> ils sont itérients avant de commencer la boucle, il finit toujours avec un < Code> Liste code>.
@Shadowranger Ouais tu as raison. Merci de la corriger. :)
Puisque vous êtes itération sur La compréhension de la liste remplace la valeur d'origine des amis code> liste code> avec une autre liste que nous obtenons en tant que sortie de la logique de compréhension. Remarque Tout cela se fait en 1 ligne. P> Si nous cassons la compréhension à la forme expansée, nous ne pouvons pas iratenir dans la liste et modifier la liste en même temps (nous pouvons le faire, mais ce n'est pas recommandé et nous Peut avoir de mauvaises valeurs). P> La forme de la compréhension de la liste ci-dessus ressemblait à: p> amis code> en utilisant énumérer, nous pouvons assumer
amis code> a déjà quelques valeurs dedans.
Notez que c'est extrêmement i> trompeur.
i code> est généralement utilisé pour les indices anonymes,
x code> pour les valeurs anonymes. Mais
énumérer code> les produit comme
(index, valeur) code> paires, donc
x code> est en réalité l'index ici, et
i code> la valeur. C'est comme si quelqu'un est intentionnellement déroutant.