首页 > 解决方案 > Python如何在1到6之间随机选择2个随机数

问题描述

我正在尝试编写此代码,并以随机顺序打印出 3 行数字 1 - 6,这很好。但是有什么方法可以让它打印 1 到 6 之间的数字对,而不是随机打印 6 个数字?示例:它当前打印:

 [1, 6, 5, 3, 4, 2]

所需打印:

[1, 6]
[5, 3]
[4, 2]

代码:

@bot.command()
async def teams(ctx, players):
    await ctx.send("Ido - 1: Yona - 2: Noam - 3: Gil - 4: Liel - 5: Yuval - 6:")
    await ctx.send('Calculating...')
    from random import shuffle
    sequence1 = [i for i in range(1, int(players)+1)]
    shuffle(sequence1)
    await ctx.send(sequence1)

    sequence2 = [i for i in range(1, int(players)+1)]
    shuffle(sequence2)
    await ctx.send(sequence2)

    sequence3 = [i for i in range(1, int(players) + 1)]
    shuffle(sequence3)
    await ctx.send(sequence3)

标签: pythonpython-3.xdiscord.pydiscord.py-rewrite

解决方案


使用列表理解,这也将通过在最后创建一个奇异组来处理不均匀的列表。

l = [1, 6, 5, 3, 4, 2]
n = 2
lst = [l[i:i + n] for i in range(0, len(l), n)]
for i in lst:
    print(i)

[1, 6]
[5, 3]
[4, 2]

推荐阅读