Почему метод ExecuteResult без тела в классе JsonResult

И теперь для чего-то большего * элегантного (pythonic) - просто прикосновение

Есть много реализаций, а пока некоторые приближаются, никто не захватывает элегантность

    • Протестировано с использованием python (3.5.1)
    • Включил дополнительный список, чтобы продемонстрировать, что он работает, когда цифры находятся в средней строке
    • Не проверял, однако, я предполагаю, что если ваш список был значительным, было бы более эффективно компилировать регулярное выражение заранее . Я уверен, что кто-то исправит меня, если это ошибочное предположение

    Quicky
    from re import compile, split    
    dre = compile(r'(\d+)')
    mylist.sort(key=lambda l: [int(s) if s.isdigit() else s.lower() for s in split(dre, l)])
    
    Полный код
    #!/usr/bin/python3
    # coding=utf-8
    """
    Natural-Sort Test
    """
    
    from re import compile, split
    
    dre = compile(r'(\d+)')
    mylist = ['elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13', 'elm']
    mylist2 = ['e0lm', 'e1lm', 'E2lm', 'e9lm', 'e10lm', 'E12lm', 'e13lm', 'elm', 'e01lm']
    
    mylist.sort(key=lambda l: [int(s) if s.isdigit() else s.lower() for s in split(dre, l)])
    mylist2.sort(key=lambda l: [int(s) if s.isdigit() else s.lower() for s in split(dre, l)])
    
    print(mylist)  
      # ['elm', 'elm0', 'elm1', 'Elm2', 'elm9', 'elm10', 'Elm11', 'Elm12', 'elm13']
    print(mylist2)  
      # ['e0lm', 'e1lm', 'e01lm', 'E2lm', 'e9lm', 'e10lm', 'E12lm', 'e13lm', 'elm']
    

    Внимание при использовании

    • from os.path import split вам нужно будет различать импорт

    Вдохновение от

  • 1
    задан yogesh patel 13 July 2018 в 13:20
    поделиться

    2 ответа

    Так поступает ваша Visual Studio. Мы нуждаемся в настройках паритуклара, чтобы увидеть исходный код встроенных библиотек в VS, который я не могу вспомнить, но вы можете увидеть исходный код здесь , который есть:

    public override void ExecuteResult(ControllerContext context) {
            if (context == null) {
                throw new ArgumentNullException("context");
            }
            if (JsonRequestBehavior == JsonRequestBehavior.DenyGet &&
                String.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase)) {
                throw new InvalidOperationException(MvcResources.JsonRequest_GetNotAllowed);
            }
    
            HttpResponseBase response = context.HttpContext.Response;
    
            if (!String.IsNullOrEmpty(ContentType)) {
                response.ContentType = ContentType;
            }
            else {
                response.ContentType = "application/json";
            }
            if (ContentEncoding != null) {
                response.ContentEncoding = ContentEncoding;
            }
            if (Data != null) {
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                response.Write(serializer.Serialize(Data));
            }
        }
    
    1
    ответ дан Ehsan Sajjad 17 August 2018 в 12:45
    поделиться
    0
    ответ дан Fakhar Ahmad Rasul 17 August 2018 в 12:45
    поделиться
    Другие вопросы по тегам:

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