练习使中位数完美

时间:2016-07-14 22:08:13

标签: python python-2.7

嘿:)我是python的新手,我想知道如何从返回输出中删除方括号。我收到错误哎呀,再试一次。中位数([1])返回 [1] 而不是1.如何删除这些方括号?其余代码是正常还是需要更改? 这是我的代码:

     <form action="/a/custmeta" method="POST" id="custmeta">  
   <input type="text" name="customer[id]" value="{{ customer.id }}" />
   <input type="text" name="customer[first_name]" value="{{ customer.first_name }}" placeholder="namespace1.key1" />
   <input type="text" name="customer[last_name]" value="{{ customer.last_name }}" placeholder="namespace2.key2" />
   <input type="submit" />
  </form>
  <script>

    $('form#custmeta').submit(function(e) {
      e.preventDefault();
      $.ajax({
        type: "POST",
        dataType: "json",
        data: $(this).serialize(),
        url: '/admin/customers/#{{ customer.id }}.json',
        success: function (data) {
          var formValid = (data.status === 'OK');
          if (formValid) {
            var msgs = '';
            for (var i=0;i<data.messages.length;i++) {
              msgs += '-- ' + data.messages[i] + '\n';
            }
            if (msgs > '') {
              alert('SUCCESS WITH MESSAGES:\n\n' + msgs);
            }
            else {
              alert('SUCCESS!');
            }
          }
          else {
              alert('Status: ' + data.status + '\nMessage: ' + data.message);
          }
        },
        error: function (jqXHR, textStatus, errorThrown) {
          alert('AJAX or Server 500 error occurred');
        }
      });
      return false;
    });
  </script>

1 个答案:

答案 0 :(得分:0)

删除此行:

return newlist

返回列表副本,然后不执行其余功能。

修改

当前代码的一个大问题是,当数组为偶数长度时,您选择了错误的索引。 (对于长度为4的数组,当你应该对元素1和2进行平均时,你将平均元素2和3。)

其他一些小建议:

  1. 使用sorted(...)获取列表的已排序副本。
  2. 使用//进行整数除法,以便您的代码可以正常使用Python 3(以及Python 2)。
  3. 使用&#34;蛇盒&#34; (变量名称下面带有下划线的下划线)。
  4. 更新的代码:

    def median(lst):
        new_list = sorted(lst)
    
        if len(new_list) % 2 == 1:
            return float(new_list[len(new_list) // 2])
        else:
            return (new_list[len(new_list) // 2 - 1] +
                    new_list[len(new_list) // 2]) / 2.0