使用给定的部分大小列表将 Scala 列表拆分为多个部分。[分区]

2024-01-03

我有两个清单:

val list1:List[Int]   =  List(5, 2, 6)

val list2:List[Any]  =  List("a", "b", "c", "d", "e", "f", "g", "h", "i", "j","k")

这样list1.sum >= list2.size

我想要一个由 list2 中的元素连续组成的列表 具有列表 1 中提到的尺寸。

例如:

如果列表 1 是List(5,2,4)我想要的结果是:

List(List("a", "b", "c", "d", "e"),List("f", "g"),List("h", "i", "j","k"))

如果列表 1 是List(5,4,6)我想要的结果是:

List(List("a", "b", "c", "d", "e"),List("f", "g","h", "i"),List("j","k"))

我怎样才能用简洁的代码做到这一点。


Turn list2进入一个Iterator然后映射过来list1.

val itr = list2.iterator
list1.map(itr.take(_).toList)
//res0: List[List[Any]] = List(List(a, b, c, d, e), List(f, g), List(h, i, j, k))

update: 虽然这似乎给出了期望的结果,但在其他地方已经指出,重用迭代器实际上是不安全的,并且其行为无法得到保证。

通过一些修改,可以获得更安全的版本。

val itr = list2.iterator
list1.map(List.fill(_)(if (itr.hasNext) Some(itr.next) else None).flatten)

-- or --

import util.Try
val itr = list2.iterator
list1.map(List.fill(_)(Try(itr.next).toOption).flatten)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用给定的部分大小列表将 Scala 列表拆分为多个部分。[分区] 的相关文章

  • Python 3 列表列表中的列表理解以转换类型

    考虑以下列表 list1 1 1 1 2 1 3 2 1 2 2 2 3 要理解字符串列表并将其转换为浮点数 可以使用 list1 0 float i for i in list1 0 但我尝试理解浮点数列表的列表并没有完全起作用 list
  • Scalatest PlusPlay Selenium 无法调整窗口大小

    对此已经研究了一段时间 我似乎找不到使用 scalatest plus 调整窗口大小的方法 我发现在线搜索或文档的唯一方法http doc scalatest org 2 1 5 index html org scalatest selen
  • 合并一个对(元组)列表?

    从链接对的列表中 我想将这些对组合成公共 ID 组 这样我就可以将 group ids 写回数据库 例如 UPDATE table SET group n WHERE id IN Example 1 2 3 4 1 5 6 3 7 8 be
  • 查找嵌套列表中元素的索引?

    我有一个类似的列表 mylist lt list a 1 b list A 1 B 2 c list C 1 D 3 是否有一种 无循环 方法来识别元素的位置 例如如果我想用 5 替换 C 的值 并且在哪里找到元素 C 并不重要 我可以这样
  • Akka 2 中的调度程序有哪些差异和使用模式?

    我很难理解它们的差异和推荐用法Akka 2 中的调度程序 http doc akka io docs akka current scala dispatchers html 我想我明白了平衡调度程序 http doc akka io api
  • 清理 STL 指针列表/向量

    您可以想出的最短的 C 块是多少来安全地清理std vector or std list指针 假设您必须对指针调用删除 list
  • 如何使用现有列表创建二维数组?

    例如 我有一个名为 mazeline 的 txt 数据 如下所示 abcd cdae korp 所以我首先列出了 3 个清单 mazeline readmaze split mline0 list mazeline 0 mline1 lis
  • 如何定义与更高类型类型(类型构造函数)绑定的上下文

    我尝试过以下方法 def test Option T Ordering value1 Option T value2 Option T val e implicitly Ordering Option T compare value1 va
  • 如何将列表列表写入 CSV 文件 Python?

    我有一个列表 例如 a b c d e f 我想将其写入 CSV 文件 如下所示 a b c d e f 我怎么做 我尝试过使用 csv writerows 但输出文件的每个字符位于不同的单元格中 并且全部位于同一行中 从某种意义上说 第一
  • 查找数据帧列表中同一列中的所有重复值并将其转换为 NULL

    我有一个清单BELGIAN COAST list包含数百个数据帧 df1 df2 15 列 X 1000 行 每个数据帧的最后一列称为Chemicals并包含一些字符 例如Sulfate or Ammonia 但是这一列有很多行Chemic
  • 如何通过 python 中的函数运行列表?

    我试图通过我创建的函数运行我的列表 但不断收到错误 我不知道出了什么问题 温度 F temp f 19 21 21 21 23 功能 def fahrToCelsius tempFahrenheit return tempFahrenhei
  • Scala 交互式解释器 (REPL) - 如何将输出重定向到文本文件?

    是否可能 如果可能 是如何做到的 通常 gt and gt gt 在 Windows 或 Linux 命令行上工作的命令在这种情况下不起作用 您可以从控制台以编程方式执行此操作 import java io FileOutputStream
  • Scala sbt 项目给出 NullPointerException?

    当我运行命令时sbt clean compile run在我的 sbt 项目中 它给出了空指针异常 这是控制台输出 info Loading project definition from home dnilesh workspace wi
  • 将字符串转换为枚举值的 Scala 安全方法

    假设我有枚举 object WeekDay extends Enumeration type WeekDay Value val Mon Tue Wed Thu Fri Sat Sun Value 我希望能够将 String 转换为 Wee
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • 从列表中选择项目以求和

    我有一个包含数值的项目列表 我需要使用这些项目求和 我需要你的帮助来构建这样的算法 下面是一个用 C 编写的示例 描述了我的问题 int sum 21 List
  • Java Stream 相当于 ReactiveX Observable#scan

    ReactiveX 有一个非常简洁的运算符 称为Scan http reactivex io documentation operators scan html 这类似于reduce 只不过它发出每个中间累加器 我如何使用 Java Str
  • Maven SBT 依赖工件?

    我同时使用 Maven 和 SBT 管理我的项目 其原因有 Intellij IDEA无法导入SBT 项目 idea sbt 插件没有 工作得很好 我不知道如何获得来源和 来自 SBT 的 javadocs 我想看到有关此问题的任何答案 问
  • ArrayList 有什么问题?

    最近我问了一个关于 SO 的问题 其中提到了可能使用 c ArrayList 来解决问题 有人评论说使用数组列表不好 我想了解更多有关此的信息 我以前从未听说过关于数组列表的这种说法 有人可以带我了解使用数组列表可能出现的性能问题吗 C n

随机推荐

  • Today Widget Extension 中经常出现“无法加载”的情况

    我正在为我的应用程序制作一个 今日 小部件 我的小部件包含一个包含 10 个单元格的 UITableView 每个单元格的高度为50pt 功能简单 如果我触摸单元格上的按钮 则从 sqlite 重新加载数据库并将它们显示在单元格上 它在模拟
  • iframe 和 Javascript 完成后 WebBrowser 控制文档完成

    我需要捕获生成的 HTML 图像 我正在使用 Alex Filipovici 的出色解决方案 将 HTML 字符串转换为图像 https stackoverflow com questions 17832304 convert html s
  • 仅当 PropertyName 未在 Json.Net 中显式设置时才使用驼峰命名法?

    我的网站使用 Json Net 我希望序列化程序默认以驼峰命名法序列化属性名称 我不希望它更改我手动分配的属性名称 我有以下代码 public class TestClass public string NormalProperty get
  • 访问 django admin 内联模型中的请求对象

    我有以下模型 表单 管理层次结构 我想要实现的基本上是将当前登录的用户添加到 AttachmentInlines 的字段中 所以我想我需要在几个方法中传递的请求对象 在下面实现 但是 在这种情况下 这些方法都不会被调用 显然是因为我正在使用
  • 两个物体之间的夹持

    I need grip between two objects actually small cube is a player having rigid body and big cube is an object that helps s
  • Android Studio WebView中的文件上传

    我想允许我的 WebView Android 应用程序使用上传按钮 由于我不是 Android 开发人员 因此我需要您的帮助来为 Android WebView 启用图像上传器 这是我的 MainActivity 文件 package co
  • 使用 XSLT 将 XML 转换为 CSV

    我有以下 XML 文档
  • 如何让 ¤ 按字面显示,而不是显示为 HTML 实体

    我正在使用 php 查看其中包含 URL 的 XML 文件 URL 看起来像这样 当我回显 URL 时 curren 显示为 又名 164 A4 或货币符号 并且链接不起作用 即使没有结束分号 也会发生这种情况 使 curren 按字面显示
  • 从 2 列 ComboBox VBA 检索两个值

    我有一个用户表单 excel VBA 其中有一个 2 列组合框 当用户从组合框中选择某个值时 我想获取他选择的值以及与第一个值关联的值 即第二列值 我该怎么做呢 简单地ComboBox1 Value返回第一列的值 ComboBox1 Val
  • 如何在子文件夹/包中使用 Go 1.16 嵌入功能?

    Go 1 16 已发布 我想使用新的嵌入功能 如果所有内容都在主包中 我就可以让它工作 但尚不清楚如何处理从子文件夹 包访问资源 尝试通过 embed FS 支持来做到这一点 例如我有一个 main go 并且在处理程序包 文件夹中还有一个
  • 获取属性的值

    这是我的 XML
  • 如何在Java运行时创建动态类

    在运行时更改现有 Java 文件的某些属性后 是否可以从现有 Java 文件创建新的 Java 文件 假设我有一个java文件 public class Student private int rollNo private String n
  • 选择 SQL Server 数据库大小

    我怎样才能查询我的sql服务器只获取数据库的大小 我用过这个 use MY DB exec sp spaceused 我懂了 database name database size unallocated space My DB 17899
  • 以数组形式返回 sql 查询

    我正在使用 jqueryui 及其自动完成插件 它使用 json 来提取项目 我想修改它 以便从我的数据库中提取项目 物品应该是这样的 items array Great em Bittern em gt Botaurus stellari
  • 检查文本是否为 HTML

    我正在使用 Meteor 我正在尝试检查文本是否为 html 但通常的方法不起作用 这是我的代码 post function var postId Session get postId var post Posts findOne id p
  • RGB 到 HSI 以及 HSI 到 RGB 转换

    我正试图掩饰RGB to HSI并恢复它 该任务需要从头开始 In RGB to HSI转换 饱和度和强度输出都很好 但我似乎没有明白Hue的表述有什么问题 示例输出 Red 255 Green 255 Blue 255 Hue 21474
  • Nginx LetsEncrypt 错误“/etc/letsencrypt/options-ssl-nginx.conf”没有这样的文件或目录

    我正在尝试使用 LetsEncrypt 和 Nginx 添加 https 我已经添加了 certbot 并且它运行成功 然后 当尝试运行 Nginx 服务器时 我收到此错误 docker entrypoint sh docker entry
  • EF4 CTP5 的存储库模式

    我正在尝试使用 ef4 ctp5 实现存储库模式 我想出了一些东西 但我不是 ef 方面的专家 所以我想知道我所做的是否是好事 这是我的数据库上下文 public class Db DbContext public DbSet
  • 用户输入和命令行参数[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 如何拥有可以接受用户输入的 Python 脚本 如果从命令行运行 如何让它读取参数 要读取用户输入 您可以尝试the cmd modu
  • 使用给定的部分大小列表将 Scala 列表拆分为多个部分。[分区]

    我有两个清单 val list1 List Int List 5 2 6 val list2 List Any List a b c d e f g h i j k 这样list1 sum gt list2 size 我想要一个由 list