从列表中创建随机对

2023-12-29

我正在尝试创建一个程序来打印列表中的元素对。我需要创建一个字典(一开始是空的),可以在其中存储值,循环遍历列表以形成一对并确保没有重复项。

当我在列表中循环时,我需要获取一个随机数,然后可以使用它来删除元素。 使用 pop 方法从列表中删除随机选择的元素,并将该元素存储到变量中,例如 element1。重复此操作以创建 element2。

通过插入 element1 作为 key 将 element1 映射到 element2 对字典,并将其值设置为 element2,也就是说,如果我们调用 pairs[element1] 稍后它应该给我们 element2 的值。

使用字典的 items() 和 keys() 方法打印结果。

问题是,我们唯一允许的函数是 random.randrange()random模块 :(

例子是这样的:

list = ["Mother", "Father", "Aunt", "Uncle", "Brother", "Sister" ]

程序的示例运行,这会创建 3 对,因为列表中有 6 个元素。

Pair 1: Mother and Aunt
Pair 2: Uncle and Sister 
Pair 3: Brother and Father

这是我现在的程序:

family = ["Mother", "Father", "Aunt", "Uncle", "Brother", "Sister" ]

for x in family:


pairs = {}

我如何改进/添加此代码?


Using random.randrange从列表中选择(和删除)随机元素很容易:

def pop_random(lst):
    idx = random.randrange(0, len(lst))
    return lst.pop(idx)

现在,假设列表有偶数个元素,我们可以非常容易地构建对:

pairs = []
while lst:
    rand1 = pop_random(lst)
    rand2 = pop_random(lst)
    pair = rand1, rand2
    pairs.append(pair)

缺少 2 个步骤,我将作为练习留给您:

  1. 在开始之前确保列表是唯一的
  2. 确保唯一列表具有偶数个元素(并弄清楚如果没有偶数个元素该怎么办...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从列表中创建随机对 的相关文章

  • str.translate 与 str.replace - 何时使用哪一个?

    何时以及为什么使用前者而不是后者 反之亦然 目前尚不完全清楚为什么有些人使用前者以及为什么有些人使用后者 它们有不同的目的 translate只能用任意字符串替换单个字符 但一次调用可以执行多次替换 它的参数是一个特殊的表 它将单个字符映射
  • Python 转换矩阵

    我有一个如下所示的列表 2 1 3 1 2 3 1 2 2 2 我想要的是一个转换矩阵 它向我显示如下序列 1 后跟 1 的频率是多少 1 后面跟着 2 的频率是多少 1 后跟 3 的频率是多少 2 后跟 1 的频率是多少 2 后跟 2 的
  • 如何使用一个模型中间层的输出作为另一个模型的输入?

    我训练一个模型A并尝试使用中间层的输出name layer x 作为模型的附加输入B 我尝试像 Keras 文档一样使用中间层的输出https keras io getting started faq how can i obtain th
  • 通过 python 中的另外两个修改数组[重复]

    这个问题在这里已经有答案了 假设我们有三个一维数组 A 长度为 5 B 长度相同 示例中为5 C 更长 比如长度为 100 C最初用零填充 A给出索引C应更改的元素 它们可能会重复 以及B给出应添加到初始零的值C 例如 如果A 1 3 3
  • Flask 中“缺少 CSRF 令牌”,但它在模板中呈现

    问题 当我尝试登录 使用 Flask login 时 我得到Bad Request The CSRF session token is missing但令牌正在呈现 在模板中 secret key 已设置 并且我在本地运行localhost
  • 类型错误:“datetime.datetime”和“str”的实例之间不支持“>”

    我是 python 日期和时间类型的新手 我有一个日期值 date 2018 11 10 10 55 31 00 00 我需要检查该日期值是否超过 90 天 我试过 from datetime import datetime from da
  • django 模板 - 如何动态访问变量?

    假设我有一个具有以下上下文的 django 模板 data1 this is data1 data2 this is data2 data name data2 现在我知道了data name 假设它是 data2 是否可以用它来访问变量d
  • App Engine NDB:如何访问属性的 verbose_name

    假设我有这个代码 class A ndb Model prop ndb StringProperty verbose name Something m A m prop a string value 当然 现在如果我打印 m prop 它会
  • 在linux上安装python ssl模块,无需重新编译

    是否可以在已经安装了 OpenSSL 的 Linux 机器上安装 python 的 SSL 模块 而无需重新编译 python 我希望它就像复制几个文件并将它们包含在库路径中一样简单 Python版本是2 4 3 谢谢 是否可以在已经安装了
  • php如何生成动态list()?

    根据我的理解 这就是 list 的工作原理 list A1 A2 A3 array B1 B2 B3 所以在帮助下list 我们可以相应地从数组中分配值 这是我的问题 如何生成动态list 1 基于数据库返回结果 我不确定有多少 但我将其全
  • 如何用正则表达式替换多个匹配/组?

    通常我们会编写以下内容来替换一场比赛 namesRegex re compile r is life re I replaced namesRegex sub r butter There is no life in the void pr
  • 使用 if 语句的网格网格和用户定义函数的真值不明确

    假设我有一个函数f x y 足够光滑 然而 有些值仅在有限的意义上存在 以sin x x的价值x 0只存在于极限 x gt 0 中 在一般情况下 我用一个来处理这个问题if陈述 如果我在情节中使用它meshgrid我收到一条错误消息 Val
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • Seaborn 中没有线性拟合的散点图

    我想知道是否有办法关闭seaborn中的线性拟合lmplot或者是否有一个等效函数可以生成散点图 当然 我也可以使用 matplotlib 但是 我发现 seaborn 中的语法和美学非常吸引人 例如 我想绘制以下情节 import sea
  • 为什么 Collections.counter 这么慢?

    我正在尝试解决罗莎琳德的基本问题 即计算给定序列中的核苷酸 并在列表中返回结果 对于那些不熟悉生物信息学的人来说 它只是计算字符串中 4 个不同字符 A C G T 出现的次数 我期望collections Counter是最快的方法 首先
  • Python 2.7 缩进错误[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • Django 将 JSON 数据传递给静态 getJSON/Javascript

    我正在尝试从 models py 中获取数据并将其序列化为views py 中的 JSON 对象 模型 py class Platform models Model platformtype models CharField max len
  • 无需访问 Internet 即可部署 Django 的简单方法?

    我拥有的是使用 Django 开发的 Intranet 站点的开发版本以及放置在 virtualenv 中的一些外部库 它运行良好 我可以在任何具有互联网连接的计算机上使用相同的参数 使用 pip 轻松设置 virtualenv 但是 不幸
  • pandas.read_fwf 忽略提供的数据类型

    我正在从文本文件导入数据框 我想指定列的数据类型 但 pandas 似乎忽略了dtype input 一个工作示例 from io import StringIO import pandas as pd string USAF WBAN S
  • Biopython 可以执行 Seq.find() 来解释歧义代码吗

    我希望能够在 Seq 对象中搜索考虑歧义代码的子序列 Seq 对象 例如 以下内容应该是正确的 from Bio Seq import Seq from Bio Alphabet IUPAC import IUPACAmbiguousDNA

随机推荐

  • Qt C++ 在 GUI 线程之外显示图像(Boost 线程)

    我正在开发一个C 库 使用VS2015通过Qt实现其接口 在图书馆方面 3增强线程连续加载 3 个文件夹中的图像 我正在尝试以 3 种不同的方式显示这些图像QLabel 或同等学历QWidgets 所以线程体由这个功能组成 特别是通过利用设
  • Windows 上的 Makefile 干净

    我现在正在学习如何使用 makefile 我制作了以下 makefile 我在 Windows 上使用 Visual Studio 命令行编译器 CC cl CFLAG EHsc test database exe composer obj
  • 如何从 LocalDate 和 LocalDateTime 中提取纪元?

    如何提取纪元值Long来自实例LocalDateTime or LocalDate 我试过了 以下 但它给了我其他结果 LocalDateTime time LocalDateTime parse 04 02 2014 19 51 01 D
  • CSS:动画与过渡

    我了解如何执行 CSS3过渡 https developer mozilla org en US docs Web CSS CSS Transitions Using CSS transitions and 动画 https develop
  • Rails 3 自动添加 X-UA-Compatible 标头?

    如果您使用 IE8 Rails 3 会自动添加标头吗 我看到 X UA Compatible 的元标记设置为 IE 8 0000 它扰乱了我的观点之一 我似乎找不到其他任何可以做到这一点的东西 所以我想我应该问这里的大脑 谢谢 鲁普里克特
  • 使用 scipy、numpy、python 等进行 sigmoidal 回归

    我有两个变量 x 和 y 它们彼此之间存在某种 S 型关系 并且我需要找到某种预测方程 使我能够在给定 x 的任何值的情况下预测 y 的值 我的预测方程需要显示两个变量之间的 S 形关系 因此 我不能满足于产生一条直线的线性回归方程 我需要
  • AbcPdf - 未应用 CSS 的文档

    这可能更多是一个技术支持问题 但我想知道是否有其他开发人员遇到过这种情况 我在 ASP NET 代码中使用 Abcpdf 从 HTML 生成 PDF 它工作正常 但一名用户生成的 PDF 没有应用 CSS IE8 Adobe Acrobat
  • 如何将文本区域数据发送到另一个页面?

    我对这种事情很陌生 我需要将 3 个文本区域中的数据提交到另一个页面 我怎么做 附 如果可以的话 我会使用输入 您需要使用表单创建页面 例如将其命名为 form html 使用此代码例如
  • 等待异步函数结果未定义

    我在使用 Node js 进行异步 等待时遇到问题 当我尝试这个时 function Read Json File fs readFile import json utf 8 err data gt if err throw err jso
  • Google Places API - 查找公司的 CID 和 LRD

    有人知道如何使用 Google Places API 查找公司的 CID 和 或 LRD 吗 到目前为止我想出的最好的解决方案是 Go to https maps google com https maps google com并搜索该业务
  • 为什么公共语言运行时不支持 Java [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Eclipse - maven - 我应该执行什么目标才能从 Maven 实际部署到 Wildfly(达到与“在服务器上运行”eclipse 命令相同的结果)

    Maven 新手 我有一个 Eclipse 项目 我可以右键单击 gt 运行为 gt 在服务器上运行它在我本地的 Wildfly 安装上成功运行 有没有办法R单击 gt 运行为 并选择适当的maven目标来达到相同的效果 即打包为war 复
  • WPF 中的双向绑定

    我无法在 WPF 中实现双向绑定 我的应用程序主窗口中有一个绑定到文本框的字符串属性 我将模式设置为 TwoWay TextBox 的值唯一更新的时间是窗口初始化时 当我在文本框中键入内容时 基础字符串属性值不会更改 当字符串属性的值被外部
  • Heroku 和网页抓取

    我有一个 nokigiri 网络抓取工具 它发布到我正在尝试发布到 heroku 的数据库 我有一个 sinatra 应用程序前端 我想从数据库中提取它 我是 Heroku 和 Web 开发的新手 不知道处理此类问题的最佳方法 我是否必须将
  • 如果没有预处理步骤,Qt 的可用性如何?

    我认为库要求使用特殊工具对我的源代码进行预处理是不合理的 也就是说 有几个人向我推荐了 Qt 库来进行跨平台 GUI 开发 如果没有预处理步骤 Qt 的可用性如何 编辑 好吧 大家 我并不是说这个问题是对 Qt 的攻击 太多的 Qt 粉丝都
  • 将 php 异常重新抛出到更高级别的 catch 块中

    我试图将异常从特定的 catch 块传递到更通用的 catch 块 但它似乎不起作用 当我尝试以下操作时 出现 500 服务器错误 这可能吗 我意识到有一些简单的解决方法 但是说 嘿 我不想处理这个错误 让我们让更通用的异常处理程序来处理它
  • 使用 awk 打印从零开始的行号

    谁能告诉我如何使用 awk 打印包括零的行号 这是我的输入文件 当我运行下面的 awk 命令时我得到 awk print NR 0 stackfile2 txt tr gt actual output txt 而我的预期输出是 如何打印以零
  • JavaScript 在 Thymeleaf 和 Spring Boot 中无法按预期工作

    JavaScript 在 thymeleaf 中不起作用 在 Spring Boot Thymeleaf 中 首先可以打开模态 但第二 第三 东西无法打开模态 每个事物都有类名 但只有第一个事物可以打开模态 我认为 JavaScript 只
  • 将实例方法作为函数指针传递给 C 库

    我正在编写一个使用 C 库的 Objective C 应用程序 我目前面临的问题是 C 库有一个结构 其中某些字段是函数指针 稍后用作回调 如何将 Objective C 实例方法转换为函数指针并将其传递给库 您需要在 Objective
  • 从列表中创建随机对

    我正在尝试创建一个程序来打印列表中的元素对 我需要创建一个字典 一开始是空的 可以在其中存储值 循环遍历列表以形成一对并确保没有重复项 当我在列表中循环时 我需要获取一个随机数 然后可以使用它来删除元素 使用 pop 方法从列表中删除随机选