Python中的元组和列表排列

因此,这四个团队组成了“目标”总数:

teams = ['W', 'X', 'Y', 'Z']
goals = [4, 5, 1, 9]

现在,如何知道哪个团队遵循了目标?

given_goals = [3, 2, 7, 15]

预期答案应采用以下形式:

answers = [('W', (2, 3)),
           ('X', 7),
           ('Z', 15)]

W连续取得了4个进球,因此第2个和第3个进球是他们的目标。然后X在第7个目标之后创建5个连续目标(5-10)W,依此类推。

我尝试过,但似乎很困难:

teams_ = [team for team, goal in zip(teams, goals) for g in range(goal)]

teams_goals = [teams_[g-1] for g in given_goals]
print teams_goals

有没有更简单的方法?

巴雷尔

我认为这是最有效的方式:

import bisect
import itertools

teams = ['W', 'X', 'Y', 'Z']
goals = [4, 5, 1, 9]

# Create the max goal of each team
goal_ranges = itertools.accumulate(goals)

# Create sorted tuples of goals and teams (comes sorted because of accumulate)
ordered_teams = list(zip(goal_ranges, teams))

def get_team(goal_number):
    # Get the leftmost occurence of the goal number, and extract the team from the tuple
    return ordered_teams[bisect.bisect_left(ordered_teams, (goal_number,))][1]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重新排列Python中的元组列表

来自分类Dev

在Python中搜索和过滤元组列表

来自分类Dev

Python 列表和元组

来自分类Dev

排列元组列表的元素

来自分类Dev

在python中从txt文件排序和排列列表

来自分类Dev

在Python 2.7中的isinstance函数中实现元组和列表

来自分类Dev

在Python 2.7中的isinstance函数中实现元组和列表

来自分类Dev

Scala 中的列表和元组

来自分类Dev

按整数排列元组列表

来自分类Dev

合并python中的元组列表

来自分类Dev

从Python中的列表访问元组

来自分类Dev

合并python中的元组列表

来自分类Dev

合并元组列表中的元组元素。元组元素是元组和列表

来自分类Dev

从 Python 中的列表创建元组列表

来自分类Dev

在Python的字符串列表中创建一个整数(和元组)列表

来自分类Dev

从Python的字符串列表中创建一个整数(和元组)列表

来自分类Dev

在列表中编辑和重新排序元组

来自分类Dev

Python中输入数字列表的排列

来自分类Dev

在Python中随机排列子列表组

来自分类Dev

生成庞大列表的随机排列(在Python中)

来自分类Dev

在Python中打印列表的特定排列

来自分类Dev

Python中输入数字列表的排列

来自分类Dev

查找给定编号的所有可能排列和组合。使用Python在列表中的元素

来自分类Dev

Python:对列表中具有相同值的数字进行计数和重新排列

来自分类Dev

Python 3:从元组列表中删除空元组

来自分类Dev

在元组列表中删除包含nan的元组-Python

来自分类Dev

在元组列表中删除包含nan的元组-Python

来自分类Dev

在python中组合元组数据框列表

来自分类Dev

如何在Python中“解压”列表或元组

Related 相关文章

热门标签

归档