Home >Backend Development >Python Tutorial >A small example about python sorted function

A small example about python sorted function

迷茫
迷茫Original
2017-03-25 14:39:571298browse

I learned socket programming two days ago, and when I asked a certain expert for advice, I was rejected. I felt like I wanted to run before I even learned how to walk. The master said that for my current level, I should do some small exercises such as operating files, serial numbers, etc. to deepen my understanding. The following is a small exercise he gave me:

1. datas = [['sherry',19,'female'],['flora',21,'female'],[' june',15,'femal']], sort the output according to the first letter of the name and age respectively;

2. Output the comparison results according to the given output method, and supplement the Person class;

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

It’s so simple, I actually did it all afternoon (slap in the face)

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

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

ViewpythonOfficial documentation , summarize the knowledge gained.

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

Returns a reordered list, with two optional keyword arguments (specify arguments by name rather than position).

key defines a function with parameters, extracts an element of the list as a parameter of this function, and returns the value as the keyword you call. The default value is None (direct comparison of the list Element)

reverse is a Boolean value. True means to sort the elements in the list in reverse order.

2. ln(a,b), when using a

The above is the detailed content of A small example about python sorted function. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn