Maison > développement back-end > Tutoriel Python > Structure de données écrite pour les maîtres de programmation Python

Structure de données écrite pour les maîtres de programmation Python

coldplay.xixi
Libérer: 2020-11-04 17:13:54
avant
1765 Les gens l'ont consulté

La colonne

tutoriel vidéo Python présente les points clés auxquels il faut prêter attention dans la programmation Python.

Structure de données écrite pour les maîtres de programmation Python

Comment filtrer les données en fonction de conditions dans les listes, dictionnaires et collections

Cas : Comment filtrer les nombres supérieurs à 0 dans les données de liste suivantes

data = [1, -1, 2, 3, 4, 7]复制代码
Copier après la connexion

utilise la fonction de filtre. Le premier paramètre est une fonction. Vous pouvez également transmettre une expression lambda comme le code suivant.

list(filter(lambda x: x >= 0, data))复制代码
Copier après la connexion

Une autre solution consiste à utiliser la génération de liste comme indiqué ci-dessous. Cette solution est plus efficace que la solution précédente.

print([x for x in data if x >= 0])复制代码
Copier après la connexion

Des productions de dictionnaires similaires peuvent également être utilisées dans des structures de données telles que des dictionnaires.

from random import randint
d = { x: randint(60, 100) for x in range(1, 21)}
{k:v for k, v in d.items() if v >= 90}复制代码
Copier après la connexion

Comment nommer chaque élément du tuple pour améliorer la lisibilité du programme

Solution : définir des constantes et utiliser des constantes pour indexer les éléments du tuple, comme le code suivant

stu = ('hao', 18, 'male', '1078244513@qq.com')
NAME = 0AGE = 1SEX = 2print(stu[SEX])复制代码
Copier après la connexion

Solution : Utilisez la fonction nomméetuple du package collections Cette fonction renverra la définition d'une nouvelle "classe" et s'utilise comme suit.

from  collections import  namedtuple
Stu = namedtuple('Stu', ['name', 'age', 'sex', 'email'])# stu = Stu('hao', 18, 'male', '1078244513@qq.com')stu = Stu(name='hao', age=18, sex='male', email='1078244513@qq.com')

print(stu.email)复制代码
Copier après la connexion

Comment compter la fréquence d'occurrence des éléments dans une séquence

Problème : Compter le nombre d'occurrences de chaque nombre dans la liste de nombres suivante

from random import randint
data = [randint(0, 20) for _ in range(30)]复制代码
Copier après la connexion

Solution : Définissez un dict (dictionnaire), puis parcourez le tableau.

c = dict.fromkeys(data, 0)复制代码
Copier après la connexion

Le code ci-dessus générera un objet dictionnaire avec différentes valeurs dans les données comme clés et 0 comme valeur.

for x in data:
    c[x] += 1复制代码
Copier après la connexion

Solution : utilisez la fonction Compteur

c2 = Counter(data)复制代码
Copier après la connexion

dans le package de collections. Cette solution peut également facilement obtenir les premiers qui apparaissent le plus.

c2.most_common(3)复制代码
Copier après la connexion

Comment trier les éléments du dictionnaire en fonction de la taille des valeurs dans le dictionnaire

Problème : Trier les valeurs​​dans le dictionnaire suivant

cj = {x: randint(60, 100) for x in 'xyzabc'}复制代码
Copier après la connexion

Solution : Dans la fonction triée En tant que deuxième paramètre, vous pouvez transmettre un objet fonction, et trié triera en fonction de la valeur de retour de la fonction.

sorted(cj.items(), key=lambda item:item[1])复制代码
Copier après la connexion

Remarque : cette fonction renvoie un nouvel objet dictionnaire

Comment trouver rapidement les clés communes dans plusieurs dictionnaires ?

Tout d'abord, introduisons l'exemple de fonction Python Sampling , qui se trouve dans le package aléatoire. Cela prend un paramètre de type de séquence et un nombre, et renvoie une séquence échantillonnée aléatoirement à partir de la séquence. Le code suivant.

from random import sample
sample('abcdefg', 3)复制代码
Copier après la connexion

Question : Comment obtenir les clés communes des trois collections suivantes.

s1 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s2 = {x : randint(1, 4) for x in sample('abcdefg', randint(3, 6))}
s3 = {x : randint(1, 4) for x in sample('abcdefg', andint(3, 6))}复制代码
Copier après la connexion

peut accomplir cette tâche en utilisant l'opération d'intersection d'ensembles.

s1.keys() & s2.keys() & s3.keys()复制代码
Copier après la connexion

Comment garder un dictionnaire en ordre ?

Le type OrderedDict du package collections conservera l'ordre dans lequel il est entré dans le dictionnaire.

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo Python

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!

Étiquettes associées:
source:juejin.im
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