Un petit exemple sur la fonction triée Python

迷茫
Libérer: 2017-03-25 14:39:57
original
1265 Les gens l'ont consulté

J'ai appris la programmation socket il y a deux jours. Lorsque j'ai demandé conseil à un certain expert, j'ai été rejeté. J'avais l'impression de vouloir courir avant même d'avoir appris à marcher. Le maître m'a dit que pour mon niveau actuel, je devrais faire quelques petits exercices comme les fichiers d'exploitation, les numéros de série, etc. pour approfondir ma compréhension. Voici un petit exercice qu'il m'a donné :

1. datas = [['sherry',19,'female'],['flora',21,'female'],[' juin',15,'femal']], triez la sortie en fonction de la première lettre du nom et de l'âge respectivement

2 Affichez les résultats de la comparaison selon la méthode de sortie donnée et complétez la classe Personne. ;

class_mates = {'sherry':[18,'male'],'june':[20,'female'],'flora':[19,'female'],'alina':[21,'male']}

class Person(object):

  def __init__(self,name,age):
  self.name = name

p1 = Person('sherry',20)
p2 = Person('june',20)


if p1<p2:
print(&#39;p1:{} less than p2:{}&#39;.format([p1.name,p1.age],[p2.name,p2.age]))
else:
print(&#39;p1:{} gte than p2:{}&#39;.format([p1.name,p1.age],[p2.name,p2.age]))
Copier après la connexion

C'est tellement simple que je l'ai fait tout l'après-midi (gifle)

def get_first(info):
     first_value = info[0][0]
     return first_value

 na = sorted(datas,key=get_first)
 print(na)

 def age_sort(info):
     return info[1]
 print(sorted(datas,key=age_sort))
Copier après la connexion

Réponse à la question 2

class_mates = {&#39;sherry&#39;:[18,&#39;male&#39;],&#39;june&#39;:[20,&#39;female&#39;],&#39;flora&#39;:[19,&#39;female&#39;],&#39;alina&#39;:[21,&#39;male&#39;]}

class Person(object):

    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __lt__(self,others):
        if(self.age<others.age):
            return 1
        elif(self.age==others.age): 
            if(self.name[0]<others.name[0]):
                return 1
            else:
                return 0
        return 0

p1 = Person(&#39;sherry&#39;,20)
p2 = Person(&#39;june&#39;,20)


if p1<p2:
    print(&#39;p1:{} less than p2:{}&#39;.format([p1.name,p1.age],[p2.name,p2.age]))
else:
    print(&#39;p1:{} gte than p2:{}&#39;.format([p1.name,p1.age],[p2.name,p2.age]))
Copier après la connexion

Voir pythonDocumentation officielle, résumez les connaissances acquises.

1、sorted(iterable[, key][, reverse])

Renvoie une liste réorganisée, a deux arguments de mot-clé facultatifs (spécifiez les arguments en utilisant leurs noms plutôt que leurs positions).

key définit une fonction avec des paramètres, extrait un élément de la liste en tant que paramètre de cette fonction et renvoie la valeur comme mot-clé que vous appelez. La valeur par défaut est Aucun (comparaison directe. de l'élément de liste)

reverse est une valeur booléenne. True signifie trier les éléments de la liste dans l’ordre inverse.

2. ln(a,b), lors de l'utilisation de a

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:php.cn
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