”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何通过重复较短的列表来压缩不等长的列表?

如何通过重复较短的列表来压缩不等长的列表?

发布于2024-11-08
浏览:718

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

通过重复较短的列表来压缩不同大小的列表

当尝试压缩两个长度不等的列表时,内置的 zip 函数会失效通过不重复较短的列表来匹配较大的列表来缩短。为了克服这个问题,需要替代方法。

使用 itertools.cycle 的解决方案

itertools.cycle 函数提供了无限迭代可迭代对象的能力。可以利用此功能无限地重复较短的列表,同时使用较长的列表对其进行压缩。

实现:

import itertools

A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
B = ["A", "B", "C"]

zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)

在此解决方案中,我们使用条件语句以确定应重复哪个列表。如果 A 比 B 长,我们使用 itertools.cycle 重复 B,如果 B 比 A 长,我们重复 A。

生成的 zip_list 将包含来自 A 和 B 的元组配对元素,其中 B 为根据需要重复以匹配 A 的长度。此方法可确保两个列表中的所有元素都配对在一起,较短的列表根据需要重复。

最新教程 更多>
  • 如何在 Java 中有效地计算文件或文件夹的大小?
    如何在 Java 中有效地计算文件或文件夹的大小?
    在 Java 中获取文件或文件夹的大小检索文件或文件夹的大小是处理文件时的常见任务在爪哇。下面是如何有效地做到这一点:获取文件大小要获取文件的大小,您可以使用 java.io 上的 length() 方法.文件对象。这将返回文件的长度(以字节为单位),如果文件不存在,则返回 0。java.io.Fi...
    编程 发布于2024-11-08
  • 变量第 04 部分
    变量第 04 部分
    মনে করুন আপনি চা খাবেন। না, চা না। কফিই খান। প্রোগ্রামার হচ্ছেন কফি তো খেতেন পারেন। কফিকে প্রোগ্রামারদের সঙ্গি বললে ভুল হবে না । যাই হোক। এখন কফি তৈর...
    编程 发布于2024-11-08
  • 当我开始使用 React 时我希望知道的事情
    当我开始使用 React 时我希望知道的事情
    3年React开发经验教训 当我第一次投入 React 时,感觉就像打开了潘多拉魔盒。有很多东西要学,一路上,我遇到了很多“啊哈!”的情况。时刻。以下是我希望在开始时就知道的 10 件事,以帮助您在 React 之旅中跳过一些减速带。 1. 组件只是函数 最重要的认识? React ...
    编程 发布于2024-11-08
  • 使用 Golang 编写打字速度测试 CLI 应用程序
    使用 Golang 编写打字速度测试 CLI 应用程序
    必须认真考虑这个标题吗?...现在我们已经解决了这个问题,让我们编写一些该死的代码:) 泵制动?尖叫……让我们对今天要尝试构建的内容做一些介绍。如果标题不明显,我们将构建一个 CLI 应用程序来计算您在 golang 中的打字速度 - 尽管您可以使用您选择的任何编程语言遵循相同的技术来构建相同的应用...
    编程 发布于2024-11-08
  • 为什么我的 Bootstrap 模态不工作? ($(...).modal 不是函数)
    为什么我的 Bootstrap 模态不工作? ($(...).modal 不是函数)
    TypeError: $(...).modal is not a function with Bootstrap Modal您在尝试执行以下操作时遇到此错误动态地将 Bootstrap 模式插入 HTML 并使用 jQuery 触发它。让我们深入研究一下问题:错误表明“$().modal”函数不被j...
    编程 发布于2024-11-08
  • 如何在 PHP 中创建递归匿名函数?
    如何在 PHP 中创建递归匿名函数?
    创建递归匿名 PHP 函数在 PHP 中创建递归匿名函数可能会很有利。下面的代码演示了如何完成此操作,传递一个函数作为引用。$factorial = function( $n ) use ( &$factorial ) { if( $n == 1 ) return 1; ...
    编程 发布于2024-11-08
  • 为什么双击显示/隐藏按钮仅在第二次调用时起作用?
    为什么双击显示/隐藏按钮仅在第二次调用时起作用?
    为什么第一次使用时双击显示/隐藏按钮?在网页中,按钮的作用是显示或隐藏一个元素,但它需要双击其初始调用。经检查发现该按钮的代码为:function showhidemenu() { var x = document.getElementById("menu"); if (...
    编程 发布于2024-11-08
  • 网格布局:初学者的终极指南
    网格布局:初学者的终极指南
    欢迎回到您的 CSS 冒险!今天,我们将深入研究网页设计工具库中最强大的工具之一:CSS 网格布局。将其视为布局技术的瑞士军刀 - 多功能、精确,并且能够将您的网页转变为组织精美的杰作。准备好接受并承受它了吗?我们走吧! 什么是 CSS 网格布局? 想象一下,您正在玩​​俄罗斯方块游...
    编程 发布于2024-11-08
  • 了解 Python 字典:完整概述
    了解 Python 字典:完整概述
    Python 字典是 Python 编程中最通用且使用最广泛的数据结构之一。它们是内置数据类型,允许开发人员将数据存储在键值对中,这使得它们对于各种应用程序非常有用。在本文中,我们将探讨什么是词典、如何使用它们,并提供示例来说明其功能。 什么是字典? Python 字典是无序的项目集...
    编程 发布于2024-11-08
  • 如何更改 H1 标签中最后一个单词的颜色?
    如何更改 H1 标签中最后一个单词的颜色?
    更改 H1 中最后一个单词颜色的解决方案在 Web 开发领域,使用 CSS 设计元素样式是基本实践。然而,当涉及到改变 H1 标签中最后一个单词的颜色时,原生 CSS 就显得不够了。不过,不用担心,因为有一种超出传统 CSS 范围的解决方案。为了实现这种效果,我们转向 JavaScript 库 le...
    编程 发布于2024-11-08
  • 角度信号和 RxJS 的新功能
    角度信号和 RxJS 的新功能
    1) Signals 与 RxJS:在 Angular 16 中从头开始创建 Signal 变量并将其与 Observable 进行比较。 以我们有侧边栏菜单和顶部菜单的示例为例,每次按下按钮时,顶部菜单都会告诉侧边栏菜单折叠: 使用 RxJS: 这种通信是在使用主题和可观察量的服务中完成的,每次我...
    编程 发布于2024-11-08
  • 实现 malloc() 和 free() — 首先重用旧内存
    实现 malloc() 和 free() — 首先重用旧内存
    在本系列关于实现 malloc() 和 free() 的上一篇文章中,我们展示了如何通过释放新块来重用内存块并减少堆。然而,当前的函数引入了一个微妙的问题:它优先考虑重用较新的块,这可能会导致内存消耗随着时间的推移而增加。为什么会发生这种情况?让我们来分解一下。 通过重用最近的块来减...
    编程 发布于2024-11-08
  • Java 中的封装与抽象:终极指南
    Java 中的封装与抽象:终极指南
    学习 Java 或任何面向对象编程 (OOP) 语言时,两个基本概念很突出:封装 和 抽象。这些概念是 OOP 的关键支柱,可提高代码的可重用性、安全性和可维护性。尽管它们经常一起使用,但它们具有不同的目的。 在这篇文章中,我们将深入探讨封装和抽象之间的差异,并通过清晰的定义、示例和代码片段来帮助您...
    编程 发布于2024-11-08
  • Zustand源码中的createWithEqualityFnImpl有解释。
    Zustand源码中的createWithEqualityFnImpl有解释。
    在这篇文章中,我们将通过记录它的一些值来分析createWithEqualityFnImpl是如何实现的,以便更好地理解。 从上图可以看出,createWithEqualityFn 调用了函数 createWithEqualityFnImpl。此模式在 vanilla.ts 中使用,如下所示: ex...
    编程 发布于2024-11-08
  • 如何防止 Pandas 在保存 CSV 时添加索引列?
    如何防止 Pandas 在保存 CSV 时添加索引列?
    避免使用 Pandas 保存的 CSV 中的索引列使用 Pandas 进行修改后保存 csv 文件时,默认行为是包含索引列。为了避免这种情况,可以在使用 to_csv() 方法时将索引参数设置为 False。为了详细说明,请考虑以下命令序列:pd.read_csv('C:/Path/to/file....
    编程 发布于2024-11-08

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3