Есть ли способ правильно распечатать упорядоченные словари?

По состоянию на 2016 ECMAScript можно использовать includes()

arr.includes(obj);

, Если Вы хотите поддерживать IE или другие более старые браузеры:

function include(arr,obj) {
    return (arr.indexOf(obj) != -1);
}

РЕДАКТИРОВАНИЕ: Это не будет работать над IE6, 7 или 8 все же. Лучшее обходное решение должно определить его самостоятельно, если это не присутствует:

  1. Mozilla (ECMA-262) версия:

      if (!Array.prototype.indexOf)
      {
    
           Array.prototype.indexOf = function(searchElement /*, fromIndex */)
    
        {
    
    
        "use strict";
    
        if (this === void 0 || this === null)
          throw new TypeError();
    
        var t = Object(this);
        var len = t.length >>> 0;
        if (len === 0)
          return -1;
    
        var n = 0;
        if (arguments.length > 0)
        {
          n = Number(arguments[1]);
          if (n !== n)
            n = 0;
          else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
            n = (n > 0 || -1) * Math.floor(Math.abs(n));
        }
    
        if (n >= len)
          return -1;
    
        var k = n >= 0
              ? n
              : Math.max(len - Math.abs(n), 0);
    
        for (; k < len; k++)
        {
          if (k in t && t[k] === searchElement)
            return k;
        }
        return -1;
      };
    
    }
    
  2. Daniel James версия:

    if (!Array.prototype.indexOf) {
      Array.prototype.indexOf = function (obj, fromIndex) {
        if (fromIndex == null) {
            fromIndex = 0;
        } else if (fromIndex < 0) {
            fromIndex = Math.max(0, this.length + fromIndex);
        }
        for (var i = fromIndex, j = this.length; i < j; i++) {
            if (this[i] === obj)
                return i;
        }
        return -1;
      };
    }
    
  3. версия roosteronacid :

    Array.prototype.hasObject = (
      !Array.indexOf ? function (o)
      {
        var l = this.length + 1;
        while (l -= 1)
        {
            if (this[l - 1] === o)
            {
                return true;
            }
        }
        return false;
      } : function (o)
      {
        return (this.indexOf(o) !== -1);
      }
    );
    

91
задан martineau 14 August 2017 в 14:58
поделиться

1 ответ

С Python 3.8: pprint.PrettyPrinter представляет sort_dicts ключевой параметр.

Верный по умолчанию, устанавливая его на [1 112] Ложь оставит словарь неотсортированным.

>>> from pprint import PrettyPrinter

>>> x = {'John': 1,
>>>      'Mary': 2,
>>>      'Paul': 3,
>>>      'Lisa': 4,
>>>      }

>>> PrettyPrinter(sort_dicts=False).pprint(x)

произведет:

{'John': 1, 
 'Mary': 2, 
 'Paul': 3,
 'Lisa': 4}

Ссылка: https://docs.python.org/3/library/pprint.html

1
ответ дан 24 November 2019 в 06:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: