使函数适用于单个元组,适用于元组列表

时间:2018-12-13 22:46:27

标签: python python-3.x

我有一个功能

def series_score(sailor, races_to_discard):
    places = sailor[1]
    for i in range(races_to_discard):
        places.remove(max(places))
    print(places)
    sum_of_places = sum(places)
    print(sum_of_places)

修改这样的元组

sailor = ("bob", [2, 4, 1, 1, 2, 5])

通过删除列表中的最高编号进入

sailor = ("bob", [2, 4, 1, 1, 2])

我如何使该功能适用​​于像这样的元组列表

list_of_sailors = [('Clare', [3, 1, 1, 2, 1, 1]), ('Bob', [2, 2, 3, 1, 2, 3]), ('Alice', [1, 3, 2, 3, 3, 2]), ('Eva', [4, 5, 4, 4, 5, 5]), ('Dennis', [5, 4, 5, 5, 4, 4])]

2 个答案:

答案 0 :(得分:0)

您可以这样做

$.ajax(
{
    url: url,
    method: "GET",
    async: true,
    dataType: "html"
}).done(
function(html)
{
    // major security risk to use eval on remote javascript code
    var dom = $(jQuery.trim(html));
    dom.filter('script').each(function()
    {
        $.globalEval(this.text || this.textContent || this.innerHTML || '');
    });
}).fail(
function(jqXHR, textStatus)
{
    alert("Request failed: " + textStatus);
});

答案 1 :(得分:0)

只需包含另一个循环。在这里,我要取每个数组中最高的两个数字:

def series_score(sailors, races_to_discard):
    for sailor in sailors:
        places = sailor[1]
        for i in range(races_to_discard):
            places.remove(max(places))
        print(places)
        sum_of_places = sum(places)
        print(sum_of_places)

print(series_score([('Clare', [3, 1, 1, 2, 1, 1]), ('Bob', [2, 2, 3, 1, 2, 3]), ('Alice', [1, 3, 2, 3, 3, 2]), ('Eva', [4, 5, 4, 4, 5, 5]), ('Dennis', [5, 4, 5, 5, 4, 4])], 2))
>>>[1, 1, 1, 1]
   4
   [2, 2, 1, 2]
   7
   [1, 2, 3, 2]
   8
   [4, 4, 4, 5]
   17
   [4, 5, 4, 4]
   17