向元组添加元素的有效方法

2024-01-12

我想向元组添加元素。我找到了两种方法。This https://stackoverflow.com/a/16730367/3337089 and this https://stackoverflow.com/a/1380875/3337089答案说添加两个元组。它将创建一个新的元组

a = (1,2,3)
b = a + (5,)

然而this https://stackoverflow.com/a/2309334/3337089说,将元组转换为列表,添加元素,然后将其转换回元组

a = (1,2,3)
tmp = list(a)
tmp.insert(3, 'foobar')
b = tuple(tmp)

这两者中哪一个在内存和性能方面更高效?
另外,假设我想在元组中间插入一个元素,可以使用第一种方法吗?
Thanks!


如果您只添加单个元素,请使用

a += (5, )

Or,

a = (*a, 5)

元组是不可变的,因此添加元素意味着您需要创建一个新的元组对象。我不建议转换为列表,除非您要在循环中添加许多元素等。

a_list = list(a)
for elem in iterable:
    result = process(elem)
    a_list.append(result)

a = tuple(a_list)

如果想在中间插入一个元素,可以使用:

m = len(a) // 2
a = (*a[:m], 5, *a[m:])

Or,

a = a[:m] + (5, ) + a[m:]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向元组添加元素的有效方法 的相关文章

随机推荐

  • 如何使用 IBM Bluemix Track & Plan 管理多个组件

    我们有一个由多个不同组件 不同功能 语言 组成的应用程序 在 IBM Bluemix 中是否可以使用单个 Track Plan 功能来管理组件的工作项 但将源代码保留在单独的 git 存储库中 例如 我希望整个应用程序有一个积压工作 然后由
  • 如何通过 FTP 访问我的 Azure 应用服务文件? wwwroot 目录为空

    使用 Azure 门户中应用服务页面导航上的部署中心链接 我能够找到我的 FTP 凭据并使用它们轻松登录 但是 wwwroot 文件夹中除了hostingstart html 之外没有任何文件 但是 当我使用 Azure 控制台时 我的所有
  • Android NDK 无法使用两个 gradle 插件调试本机代码

    我使用 NDK 和实验性 gradle 插件 最初我能够调试我的本机代码 然后我看到了这个问题https github com googlesamples android ndk issues 119 https github com go
  • 如何在Android文件系统上模拟文件的“tail”命令?

    我的 SD 卡上有文件 我的应用程序使用它作为日志文件 是否可以通过 adb 实时监视文件的所有更改 喜欢与tail f sdcard myfile log命令 这似乎对我很有用 adb shell while true do cat sl
  • 如何使用OKHTTP发出post请求?

    我读了一些将 json 发布到服务器的示例 有人说 OkHttp 是 HttpUrlConnection 接口的实现 由Java提供 它提供了一个用于写入内容的输入流 不知道 或关心 该内容是什么格式 现在我想使用名称和密码参数向 URL
  • 提取 Objective-c 二进制文件

    是否可以提取二进制文件 获取二进制文件背后的代码 使用类转储 您可以看到实现地址 但是是否也可以看到实现地址中的代码 有什么办法可以做到吗 您的所有代码都会编译为单个指令 并放置在可执行文件的文本部分中 编译器负责将高级语言转换为更简单的处
  • 简单的、结构类型的 XML 数据绑定(无需代码生成或反射)

    我正在寻找一个 Java 库 它允许我将 XML 编组到 Java 对象树 反之亦然 有很多库可以让我将 XML 绑定到JavaBeans由某些代码生成工具生成 但是 我不需要这些 JAXB JiBX Castor 等 我需要的是一个工具
  • 如何做 pd.get_dummies 或其他方式?

    实际上 我的问题是基于 是否有更快的方法根据条件更新数据框列值 https stackoverflow com questions 46678400 is there a faster way to update dataframe col
  • WCF 数据服务支持的 Linq

    我正在寻找与 WCF 数据服务兼容的受支持 linq 扩展方法的完整列表 通过反复试验 我发现 First Func 和 Single Func 不受支持 还有其他吗 This http msdn microsoft com en us l
  • Java - 如何检查字符串中的重复字符?

    我需要编写一个函数来检查字符串中是否有重复值并返回唯一字符的计数 如果计数大于 3 则应返回 true 如果计数小于 3 则应该为 false 这是我一直在尝试的 注意我是java新手 private boolean isFormatVal
  • SSE (SIMD):向量乘标量

    我在程序中执行的常见操作是按标量缩放向量 V s 例如 1 2 3 4 2 2 4 6 8 除了首先在向量中的每个位置加载标量 例如 mm set ps 2 2 2 2 然后相乘之外 是否有 SSE 或 AVX 指令可以执行此操作 这就是我
  • 如何从 UIView 创建 CGLayer 进行离屏绘图

    我已经阅读了我认为是 Quartz 2D 编程指南的相关部分 但找不到以下内容的答案 他们似乎在文档中没有过多谈论 iOS 我的应用程序在UIView 我时不时地必须以某种方式更新绘图 例如更改其中一个形状的填充颜色 我保留CGPathRe
  • 访问列表视图中的自定义对象

    我目前正在构建一个应用程序 该应用程序将请求发送到网络 然后解析结果并将其放入对象的 ArrayList 中 然后 该列表将填充 ListView 我想创建一个onClickListener这将使我知道单击了哪个对象 但我找不到实现此目的的
  • 如何访问 Sharepoint 2007/2010/2013 _layouts 文件夹

    我正在尝试在该位置插入一些数据 mysiteurl layouts 因为我必须使用第三方软件 该软件使用该文件夹中存储的数据 我是机器的管理员 Windows Server 2008R2 上的 Sharepoint 2010 但 Share
  • ActiveMQ - 通过命令行删除/清除所有队列

    有没有办法通过命令行 win linux 删除 清除ActiveMQ中的所有队列 我只能找到特定队列的命令 或者也许有办法通过 activeMQ 管理员来做到这一点 同样 我只找到了如何一一删除 清除队列 这可能非常乏味 Thanks 你可
  • gitlab.com SSH 连接超时

    我尝试让 Gitlab 与 SSH 一起工作 但不行 我已完成以下步骤 1 生成ssh密钥 ssh keygen t rsa C email protected cdn cgi l email protection b 4096 2 在文件
  • WPF DataGrid 虚拟化无法正常工作?

    我有一个 DataGrid 其中有一个 DataTable 设置为其 ItemsSource DataTable 包含 24 列和约 1600 行 实际上我稍后必须加载更多行 但目前这已经够麻烦的了 尽管将列和行的虚拟化设置为活动状态 Da
  • 使用 libwebsockets 编译 libuv

    我正在尝试运行与 LWS 库一起安装的 libwebsockets test server 但它不会运行 因为 lwsts 31616 libuv support not generated in 我检查过 libuv 已安装 1 8 0
  • 可以在 Try/Except 中重试/循环吗?

    我试图了解是否可以在 Try Except 调用内部设置循环 或者是否需要重构以使用函数 长话短说 在花了几个小时学习 Python 和 BeautifulSoup 后 我设法将一些代码组合在一起来抓取 URL 列表 将数据提取到 CSV
  • 向元组添加元素的有效方法

    我想向元组添加元素 我找到了两种方法 This https stackoverflow com a 16730367 3337089 and this https stackoverflow com a 1380875 3337089答案说