Skip to main content

Aujourd'hui, nous introduisons toujours des boucles, mais nous introduisons une utilisation avancée , dans la scène actuelle, cela peut nous aider à simplifier beaucoup la complexité du code.


Premièrement, SkipHoread
a d'abord été à ignorer le début, le plus courant lorsque nous lisons le texte. Dans des applications pratiques, telles que le journal ou le code, V.V. Ces informations seront visualisées pour les programmeurs pour les données. Lorsque nous obtenons des données via le code, il est clair que le désir de filtrer ces informations.

Par exemple, nous avons une donnée, commençons par #, apportons quelques remarques:

Activités générales, nous allons créer un itérateur Ouvrir le fichier que nous obtenons le diabolique les fichiers en parcourant cette répétition:

# This is a data for student# Rows 100xiaoming, 17, 99;xiaoli, 18, 98;... S'il est utilisé uniquement pour l'exporter, si nous avons besoin de données dans le fichier de traitement, veuillez commenter le titre est qu'il interférera avec notre code d'activité. Bien sûr, vous pouvez participer à des examens effilésG, mais cela causera plus de problèmes, le code n'est pas assez beau. Pour ce problème, une meilleure solution est
goutte à goutte

with open('xxxx.txt') as f: for line in f: print(line) DRPGWIL est une fonction d'itemTools, qui peut recevoir des fonctions de filtrage personnalisées et d'Itérateur recréé de nouveaux itérateurs
, cette nouvelle répétition est la précédente tête de répétition sans répondre à nos exigences avant de filtrer:

Dans l'exemple maintenant, nous voulons filtrer la tête de la tête plus # légendes, nous pouvons le faire:


En conséquence de ce contenu dont nous n'avons pas besoin. Lorsque nous connaissons le format des données ne répond pas à la situation, vous pouvez utiliser Expressward pour spécifier le format filtré. Si nous

connaissons le nombre de barres de filtrage , vous pouvez utiliser un autre outil, appelé ISLICE, est une fonction tranchée, comme une fonction de tranche de la matrice en Python, vous avez coupé l'itérateur. Spécifiez les données de clips.

Dans un exemple:
from itertools import dropwhilewith open('xxxx.txt') as f: for line in dropwhile(lambda line: line.startswith('#'), f): print(line), donc nous allons NHAn sont de la troisième rangée et des données précédentes seront filtrées. Il représente vraiment une activité tranchée de [3:] dans la matrice.

La combinaison de la deuxième agencement, répétée , nous savons tous qu'il existe une nouvelle fonction de TIPE C ++ de TION peut être intégrée à une seule tableaux et retourne de la suivante. Il y a aussi la même fonction dans Python, mais utilisée dans le format Itérateur.


Par exemple, nous voulons trouver trois éléments de A, B, C, nous voulons trouver tous ses arrangements:

from itertools import dropwhilewith open('xxxx.txt') as f: for line in islice(f, 3, None): print(line)

Goût Prenez en charge plusieurs paramètres, tels que le tri précédent , nous espérons d'abord deux éléments, en plus de la trancher, nous devons simplement passer un paramètre, comme celui-ci:


En plus de l'agencement, il prend également en charge les combinaisons, la même chose est vraie , il suffit de remplacer le nom de la fonction dans la combinaison:

Dans la combinaison générale, une fois que l'élément sélectionné, supprimera ensuite de l'ensemble de candidats, jamais sélectionné. Si nous mLa flexion a une combinaison de retours, nous pouvons modifier une fonction, ce nom de fonction est légèrement long, mais le nom est également appelé intuitivement appelé combinaison_with_ dallockement. Mais parce qu'il y a une réinitialisation de l'échantillon, nous avons besoin de définir le nombre d'éléments

, sinon l'échantillonnage peut être créé illimité.

Mardi, la chaîne consolidée répétée items = ['a', 'b', 'c']from itertools import permutationsfor p in permutations(items): print(p)
Dans l'article, nous avons introduit ZIP pour répéter plusieurs répéteurs multiples en même temps, en plus de cela, nous avons besoin de

pour chaîner de multiples électricateurs. répéter

. Par exemple, le journal du système est situé dans plusieurs fichiers, nous souhaitons apprendre le journal d'erreur pour analyse. À ce stade, nous espérons ne pas lire plusieurs personnes en même temps, mais j'espère qu'il existe un moyen de relier le contenu de nombreuses réputations. Cette fonctionnalité est une méthode for p in permutations(items, 2): print(p) String
dans l'élémentTools, acceptant plusieurs boucles. Lorsque nous passons à travers, il connectera automatiquement le contenu de plusieurs répéteurs, nous pouvons le répéter.
from itertools import combindationsfor c in combinations(items): print(c)

De cette manière, nous exporterons le contenu des nums et des caractères semble être exécuté du début à la fin. Un itérateur est le même . Vous pouvez dire que nous pouvons également être déployés sans chaînes, nous pouvons le faire:

for c in combinations_with_replacement(items, 3): print(c) En effet, des résultats, il est également disponible. Mais si nous analysons les variables intermédiaires pendant le processus d'exécution interne, nous verrons que lorsque nous exécutons des nums + caractères, il est en fait
pour la première fois créé une nouvelle liste temporaire

Ce livre stocke des données nums et caractères, ce qui signifie que nous sommes vraiment réellement cette nouvelle liste. Le résultat est que nous

a ouvert une mémoire

et dépensé un peu de temps. Si nous utilisons la chaîne, il ne dispose pas d'une telle variable intermédiaire, qui est complètement répétée exécutée par un itérateur, beaucoup en mémoire, ce qui est également l'avantage de la chaîne. Mardi, le contenu de la répétition répétée

Nous ne devrions pas être familiersAvec l'activité de retour, nous avons assisté à plusieurs reprises dans l'arrangement de consommation précédent et certains articles sont testés. De même, lorsque nous utilisons l'outil pour fusionner plusieurs teneurs en matière de repin, si le contenu de sontrage dans l'ordre, nous pouvons également renvoyer des éléments dans plusieurs boucles dans
et ne nécessiter plus besoin de dynamique manuelle active.
from itertools import chainnums = [1, 2, 3]chars = ['a', 'b', 'c']for i in chain(nums, chars): print(i) Utilisation de la bibliothèque de démarrage pour le faire très facilement, voyons l'exemple:

Après le fait, nous obtiendrons [1, 2, 3, 4, 5, 6]. En d'autres termes, nous renforcerons plusieurs répéteurs dans l'ordre avec HePQ.Merge. Bien sûr, nous pouvons également nous fusionner, mais si nous n'avons besoin que d'utiliser des données entre données, vous pouvez enregistrer l'espace mémoire.

Le contenu se termine ici, cet article et l'article précédent énumérés fondamentalement à l'aide d'Itérateur sont souvent utilisés. Bien entendu, en plus du contenu mentionné ci-dessus, les personnes à Python ont d'autres utilisations,Mais des camarades de classe relativement rares et intéressés peuvent être compris privés.for i in nums + chars: print(i)

Sujets

Catégories