【问题标题】:Generate unique pairs from list several times without duplicates多次从列表中生成唯一对而不重复
【发布时间】:2021-10-20 22:24:51
【问题描述】:

在这里阅读了许多主题后,我终于有了自己的第一个问题。 我想在 python 中编写一个脚本,它将带有名称和团队代码的文件作为输入并将它们存储在一个列表中。 然后程序应该找到这些人的随机配对,但队友不应该成对。每当使用 random.choice 找到一对时,这两个人都应该是列表中的弹出窗口。 到目前为止很容易。但是现在我想每个月重复这个过程,不应该重复对......

我的想法是将所有过去的组合存储在另一个文件中,每次找到新匹配时,它首先会检查列表中是否已经存在这对。

有没有更好的方法来做到这一点?

很想听听你的想法!

【问题讨论】:

  • 第一,提供minimal reproducible example,第二,你看过itertools模块吗?
  • 这听起来是一个合理的解决方案。
  • 谢谢!是的,我查看了组合功能。但是后来我有了所有可能的组合,但我无法弄清楚如何从中获得随机对,这些随机对覆盖了最后输入列表中的所有人员。
  • @user15455735 然后你可以使用random.sample
  • 能否提供一个包含球员和球队的文件样本?

标签: python list


【解决方案1】:

如果你想随机化它,你将需要一种方法来存储以前的对。要么是文件,要么是数据库。听起来这将是一个非常简单的程序,因此 json 文件可能最适合存储。

除非我遗漏了某些东西(我经常这样做),否则我相信根据您的存储检查它是确定之前是否已选择随机对的唯一方法。

祝你好运!

【讨论】:

  • 谢谢!是的,我想将旧组合保存在一个文件中,然后检查它们!
  • 避免重复的一种常见方法是创建一个临时的set,其中包含已经遇到的那些,并在添加之前检查新的候选成员。
猜你喜欢
  • 2013-07-22
  • 1970-01-01
  • 1970-01-01
  • 2022-06-24
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 1970-01-01
  • 2013-08-16
相关资源
最近更新 更多