Python 使函数为单个元组工作,为元组列表工作
我有一个函数Python 使函数为单个元组工作,为元组列表工作,python,python-3.x,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,
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])
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])]
for sailor,races in list_of_sailors:
series_score(sailor, races)
通过删除列表中的最高数字,将其转换为
sailor = ("bob", [2, 4, 1, 1, 2])
我如何调整函数来处理这样的元组列表
sailor = ("bob", [2, 4, 1, 1, 2, 5])
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])]
for sailor,races in list_of_sailors:
series_score(sailor, races)
你可以这样做
sailor = ("bob", [2, 4, 1, 1, 2, 5])
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])]
for sailor,races in list_of_sailors:
series_score(sailor, races)
只需包含另一个循环。在这里,我取下每个数组中最高的两个数字:
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
适用于水手列表中的水手:系列评分(水手、比赛、弃置)
?当Eva
列表中有多个5
时,该怎么办?您希望全部删除还是仅删除1?可能会将此更改为def series_分数(从比赛到弃置,*水手)
,因此它仍然适用于单个水手。嗯,在我进行更改时,这似乎不起作用。它仍然索引得分列表的元素,而不是列表本身。这对一个水手来说很有效,但它很难看<代码>系列分数([['Clare',[3,1,1,2,1,1]]],2)