首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python匹配列表中的项以创建新列表

python匹配列表中的项以创建新列表
EN

Stack Overflow用户
提问于 2013-03-13 04:35:17
回答 1查看 80关注 0票数 1

我正在试着写一个程序,为一定数量的玩家创建一个循环赛时间表(每个玩家与其他玩家比赛)。

我想知道是否有一种方法可以只使用列表来做到这一点。我尽量不使用itertools.combinations()

如果我有一个程序,允许你输入玩家的数量并生成这些玩家的列表,有人能想出一种方法来做到这一点吗?示例:4人生成列表1,2,3,4

我需要这个程序打印:

第一轮:1对4 2对3

第二轮:1对3 4对2

第三轮:1对2 3对4

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-13 04:51:57

下面是描述的第一个算法here的简单实现。

代码语言:javascript
运行
复制
N = 6
a = range(N)
for i in xrange(N-1):
    print zip(a[:N/2], reversed(a[N/2:]))
    a = a[:1] + a[-1:] + a[1:-1]

编辑:实际上,正如所指出的,它甚至适用于奇数N

(ORIG:仅当N为even时才有效。该链接解释了如何扩展它以支持奇数N。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15371576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档