El diccionario de Python está ordenado por clave y valor

Ordenando el primer pensamiento de sorted () y sort () de python

La diferencia entre sort y sorted:
1.sort es un método aplicado a la lista, sorted puede ordenar todos los objetos iterables.
2. El método de ordenación de la lista devuelve una operación en una lista existente, mientras que el método ordenado de la función incorporada devuelve una nueva lista, no una operación sobre la base original. En términos sencillos, sort no tiene valor de retorno y sorted tiene un valor de retorno.

ordenado 语法 : ordenado (iterable, clave = Ninguno, reverso = Falso)

Descripción de parámetros:

objeto iterable-iterable.
key-Se utiliza principalmente para comparar el elemento. Solo hay un parámetro. El parámetro de la función específica se toma del objeto iterable y especifica un elemento en el objeto iterable para su clasificación .
regla de ordenación inversa, reverse = True para orden descendente, reverse = False para orden ascendente (predeterminado).

Por lo tanto, el diccionario se ordena por clave y valor, es decir, la clave o valor se selecciona en el parámetro clave en sorted ().

import random
testlist=[]
for i in range(20):
    testlist.append(random.randint(81,100))
print(testlist)
zi={
    
    }
for x in testlist:
    if x not in zi.keys():
        zi[x]=testlist.count(x)
print("zi:",zi)

# 按照键排序
ll1=sorted(zi.items(),key=lambda kv:(kv[0]))
print(ll1)
#按照值排序
ll2=sorted(zi.items(),key=lambda kv:(kv[1]))
print(ll2)

La salida es:

[88, 97, 90, 88, 99, 95, 95, 95, 86, 93, 97, 90, 95, 98, 100, 86, 99, 90, 84, 84]
zi: {
    
    88: 2, 97: 2, 90: 3, 99: 2, 95: 4, 86: 2, 93: 1, 98: 1, 100: 1, 84: 2}
[(84, 2), (86, 2), (88, 2), (90, 3), (93, 1), (95, 4), (97, 2), (98, 1), (99, 2), (100, 1)]
[(93, 1), (98, 1), (100, 1), (88, 2), (97, 2), (99, 2), (86, 2), (84, 2), (90, 3), (95, 4)]

1. La función items () del diccionario de Python devuelve una matriz de tuplas transitable (clave, valor) como una lista.
2. La función lambda puede referirse a: lambda-map-reduce de python

Lista ordenada por diccionario :

lis = [{
    
     "name" : "Taobao", "age" : 100},  
{
    
     "name" : "Runoob", "age" : 7 }, 
{
    
     "name" : "Google", "age" : 100 }, 
{
    
     "name" : "Wiki" , "age" : 200 }]

lname=sorted(lis,key=lambda kv:kv['name'])
print(lname)
lage=sorted(lis,key=lambda kv:kv['age'])
print(lage)

La salida es:

[{
    
    'name': 'Google', 'age': 100}, {
    
    'name': 'Runoob', 'age': 7}, {
    
    'name': 'Taobao', 'age': 100}, {
    
    'name': 'Wiki', 'age': 200}]
[{
    
    'name': 'Runoob', 'age': 7}, {
    
    'name': 'Taobao', 'age': 100}, {
    
    'name': 'Google', 'age': 100}, {
    
    'name': 'Wiki', 'age': 200}]

Supongo que te gusta

Origin blog.csdn.net/liulanba/article/details/114384960
Recomendado
Clasificación