Maison >développement back-end >Tutoriel Python >Un petit exemple sur la fonction triée Python

Un petit exemple sur la fonction triée Python

迷茫
迷茫original
2017-03-25 14:39:571293parcourir

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]))

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))

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]))

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!

Déclaration:
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