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

标签 python list

我正在尝试编写一个程序,为一定数量的玩家创建循环赛时间表(每个玩家与其他玩家比赛)。
我想知道是否有办法仅使用列表来做到这一点。我试图不使用 itertools.combinations()

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

我需要打印程序:

第一轮:1 vs. 4 2 vs. 3

第二轮:1 vs. 3 4 vs. 2

第三轮:1 vs. 2 3 vs. 4

最佳答案

这是描述的第一个算法的简单实现 here .

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 为偶数时才有效。该链接解释了如何扩展它以支持奇数 N。)

关于python 匹配列表中的项目以创建新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15371576/

相关文章:

python - Airflow SSH 运算符(operator)如何指定身份验证类型

python - 为什么这个 python 代码给出 [3,3]?

c++ - for 中的迭代器无限循环列表

java - 在 Java 中获取列表内的字段详细信息,而无需大的 if else 条件

java - 从特定索引开始搜索 java.util.List

java - 检查列表中的对象是否是最后一个(按日期)的最佳方法

python - 为什么python中的return()函数会打印出Jupyter notebook中的值?

python - 斯坦福依赖解析器设置和 NLTK

python - 如何使用lark ebnf解析字符串内的~{expr}

python - 如何根据行组将行重新排列为 Pandas 中的列