Premièrement, liste
Pour la première fois, introduisant la fonction de liste. Dans notre processus de programmation quotidien, un problème commun. En langage C et certaines langues antiques ne sont pas une notification que ce concept, nous devons donc passer à travers un tableau ou un conteneur, il est généralement disponible uniquement. Avec la boucle, nous traversons le processus Traverses très pratique, nous pouvons utiliser directement une variable pour chevaucher la valeur entre un conteneur. L'exemple le plus simple est la transmission de tableaux, tels que nous souhaitons passer par les éléments. Nous pouvons directement:
for item in items:
Par le biais du processus de répétition, nous pouvons facilement parcourir une matrice sans inscription requise, ni calculer l'après-midi de longs tableaux. Mais Si nous devons connaître le contenu de l'élément dans le corps de circulation ? Pouvons-nous réellement choisir un index et un itérateur, tels que l'ajout d'une variable externe du corps cyclique pour enregistrer l'index?
idx = 0for item in items: operation() idx += 1
Cela peut résoudre le problème, mais c'est très gênant, ce n'est pas simple. Ce n'est pas
Pythonic (conformité au code standard Python). Pour poursuivre Pythonic, il existe une fonction répertoriée pour résoudre notre situation dans laquelle nous souhaitons répéter directement et avoir besoin de connaître les éléments.
Son utilisation est également très simple, nous transmettons l'objet ou l'itérateur à être attaché dans la fonction d'inscription, créera un nouvel itérateur
pour que nous , paie sur l'index et le contenu répété. Prenons un exemple:
De plus, la liste prend également en charge les paramètres entrants. Par exemple: Dans certaines scènes, nous espérons que l'enregistrement commence à partir de 1 et ne commence plus, nous pouvons obtenir plus de paramètres pour y parvenir:for i, item in enumerate(items):
for i, item in enumerate(items, 1):
Le cycle est notre programmation L'essentiel est l'opération, et donc la liste de fonctions est très large. Mais une chose à faire attention, si nous répétions que c'est un certain nombre de groupes nous avons besoin de CHItalie pour distinguer les indicateurs et les valeurs. Par exemple: Lorsque nous n'avons pas à afficher, nous avons deux méthodes répétées, les deux peuvent courir.
data = [(1, 3), (2, 1), (3, 3)]
Mais si nous utilisons la liste, nous devons distinguer en raison de l'introduction de l'indice, sinon elle signalera une erreur, nous n'avons donc qu'une méthode d'itération:
for x, y in data:for (x, y) in data:
Lundi, Zip
for i, (x, y) in enumerate(data):
Les autres fonctions introduites sont également pratiques pour les États-Unis, mais c'est pour une autre scène - Répétez plusieurs objets
Son script d'application est très simple, ce qui signifie que nous voulons
répéter plusieurs données tels que les données d'utilisateur et les données utilisateur professionnelles sont séparées, nous souhaitons parcourir Karma et Nom d'utilisateur. Si vous n'utilisez pas zip, nous ne pouvons qu'envolérer les répétitions avec un indicateur traditionnel. Bien sûr, c'est bien sûr, il y a deux petits problèmes, le premier petit problème bien sûr est la lisibilité du code, pas assez de pythoniques, le deuxième problème est que nous tonsUn besoin Maintenir la longueur de deux conteneurs différents augmentera le code. Utilisation de ZIP, vous pouvez résoudre deux problèmes en même temps. Prenons l'exemple: Le résultat de la sortie finale est le nom de la personne et de la profession Tuple:Parmi les exemples mentionnés ci-dessus, la longueur de Le nom et le travail sont vraiment incompatibles. Dans le cas de l'utilisation du zip,
enlèvera automatiquement l'un d'entre eux plus court quenames = ['xiaoming', 'xiaohua', 'xiaohei', 'xiaoli']jobs = ['coach', 'student', 'student', 'student', 'professor']for name, job in zip(names, jobs): print(name, job)
. Si nous ne voulons pas couper, nous pouvons également utiliser zip_longest sous itemTools au lieu de zip: xiaoming coachxiaohua studentxiaohei studentxiaoli student
remplie de le numéro de remplissage de la cupidité ZIP_LONGEST UN rempli de la valeur que nous avons spécifiée. Que ce soit Zip ou Zip_Longest, il peut supporter une transmission de plusieurs segments. Par exemple: ZIP En plus de faciliter la répétition des États-Unis, une autre utilisation importante est disponible dans très pratique pour créer des dict
from itertools import zip_longestfor name, job in zip_longest(names, jobs):
. Par exemple, dans l'exemple, nous voulons créer un nom professionnel et un dictEt la méthode générale a été définie d'abord comme une dict, puis parcourez toutes les clés et toutes les valeurs pour créer des dict. Cependant, à l'aide de zip, nous pouvons simplifier cette opération dans un code: Doit noter que les résultats que nous appellent des déclarations de correspondance sont vraiment une udomine, lorsque nous convertissons dans l'application de contenu de l'itérateur passera automatiquement . Par exemple, si nous imprimons directement le résultat d'appel ZIP, il trouvera l'adresse de l'itérateur à l'écran:
names = ['xiaoming', 'xiaohua', 'xiaohei', 'xiaoli']jobs = ['coach', 'student', 'student', 'student', 'professor']hobbies = ['footbal', 'tennis', 'badminton', 'basketbal']for name, job, hobby in zip(names, jobs, hobbies): print(name, job, hobby)
Nous voulons obtenir son contenu, il faut énumérer manuellement: ] Que ce soit une pression ou une glace zip basée sur le déploiement de la boucle , n'a rien de trop profond en principe et que nous n'affectons pas notre code d'écriture. Cependant, Python est python, semblable à sa langue simple et à sa logique, dans laquelle vous ne pouvez pas vous séparer des méthodes et des outils, la logique de code est simplifiée. Nous comprenons doncQue c'est essentiel.J'espère que tout le monde peut écrire du code Pythonic, non seulement écrire des capacités de code, mais également un code magnifique.
jobDict = dict(zip(names, jobs))