Python: ordena según una clave del dictado en la lista

1. Lista de descripción de la estructura de datos dict:

 "trends": [
               {
                    "name": "Rick Gates",
                    "promoted_content": null,
                    "query": "%22Rick+Gates%22",
                    "tweet_volume": 135732,
                    "url": "http://twitter.com/search?q=%22Rick+Gates%22"
               },
               {
                    "name": "#TheBachelorette",
                    "promoted_content": null,
                    "query": "%23TheBachelorette",
                    "tweet_volume": 91245,
                    "url": "http://twitter.com/search?q=%23TheBachelorette"
               },
               {
                    "name": "#KremlinAnnex",
                    "promoted_content": null,
                    "query": "%23KremlinAnnex",
                    "tweet_volume": 42654,
                    "url": "http://twitter.com/search?q=%23KremlinAnnex"
               }]

2. Destino de clasificación:

Ordene los elementos en tendencias según el valor de tweet_volume.

3. Código de implementación:

Los siguientes 4 métodos son todos posibles, el cuarto tiene un mejor rendimiento

1)trends = sorted(trends,key = lambda e:e['tweet_volume'],reverse = True)
2)trends = sorted(trends,key = lambda e:e.get('tweet_volume'),reverse = True))
3)trends = sorted(trends,key = lambda e:e.__getitem__('tweet_volume'),reverse = True))
4)trends = sorted(trends,key = itemgetter('tweet_volume'),reverse = True)

Descripción:

  1. Cuando selecciono la clave en el dict, elijo un método de índice como e ['tweet_volume']. También puede elegir e.get ('tweet_volume') o e .__ getitem __ ('tweet_volume') para obtener la clave. Valor de
  2. Al utilizar  operator la itemgetter función del módulo  , dicha estructura de datos se puede ordenar muy fácilmente.from operator import itemgetter

4. Prototipo de la función Sotred ():

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

iterable: Variables que deben ordenarse (obligatorio)

clave: especifica el elemento ordenado

reverse: especifique si desea invertir el orden, el valor predeterminado es falso

Para obtener más información, consulte el artículo anterior: Dist series (1): Ordenar según la clave y el valor del diccionario

5. Lambda: función anónima, la forma general es

lambda arguments: expression

6. Considerando que algunos datos son NULL, es necesario procesarlos con anticipación:

Para un tweet_volume vacío establecido en 0, el código completo:

for item in trends:

    if(item['tweet_volume'] is None):

    item['tweet_volume'] = 0

trends = sorted(trends,key = lambda e:e['tweet_volume'],reverse = True)

 

Supongo que te gusta

Origin blog.csdn.net/sanmi8276/article/details/108639247
Recomendado
Clasificación