Maison >développement back-end >Tutoriel Python >Structure de données écrite pour les maîtres de programmation Python
La colonne
Cas : Comment filtrer les nombres supérieurs à 0 dans les données de liste suivantes
data = [1, -1, 2, 3, 4, 7]复制代码
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))复制代码
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])复制代码
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}复制代码
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])复制代码
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)复制代码
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)]复制代码
Solution : Définissez un dict (dictionnaire), puis parcourez le tableau.
c = dict.fromkeys(data, 0)复制代码
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复制代码
Solution : utilisez la fonction Compteur
c2 = Counter(data)复制代码
dans le package de collections. Cette solution peut également facilement obtenir les premiers qui apparaissent le plus.
c2.most_common(3)复制代码
Problème : Trier les valeursdans le dictionnaire suivant
cj = {x: randint(60, 100) for x in 'xyzabc'}复制代码
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])复制代码
Remarque : cette fonction renvoie un nouvel objet dictionnaire
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)复制代码
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))}复制代码
peut accomplir cette tâche en utilisant l'opération d'intersection d'ensembles.
s1.keys() & s2.keys() & s3.keys()复制代码
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!