为什么 List 分区有效而 span 无效

2023-12-15

我有这个 (Char, Int) pars 的列表(它包含仅具有唯一 Char 值的对)

List(( ,3), (d,1), (e,3), (h,3), (i,1) , (l,3), (o,2), (r,2), (t,1), (w,1))

我需要将此列表分为 2 个 - 一个包含任何具有“d”字符的对,另一个是其余的。

于是我尝试了partition和span,但发现span并没有按预期工作。这是结果(从 scala 工作表复制)

 val myPartition = oX.partition(e => e._1 == 'd') > myPartition  : (List[(Char, Int)], List[(Char, Int)]) = (List((d,1)),List(( ,3), (e,3), (h,3), (i,1), (l,3), (o,2), (r,2), (t,1), (w,1)))

  val mySpan = oX.span(e => e._1 == 'd') > mySpan  : (List[(Char, Int)], List[(Char, Int)]) = (List(),List(( ,3), (d,1), (e,3), (h,3), (i,1), (l,3), (o,2), (r,2), (t,1), (w,1)))

我很困惑为什么给定相同的谓词函数分区会给我预期的结果,而跨度给我空列表作为第一个列表,而原始副本作为第二个列表


来自文档 of span:“返回其元素全部满足给定谓词的列表的最长前缀,以及列表的其余部分。”

So here span给你预期的结果:因为列表中的第一个元组没有字符d,每个元组具有字符的列表的最长前缀d确实是空列表。

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

为什么 List 分区有效而 span 无效 的相关文章

随机推荐

  • T_INLINE_HTML?这有什么问题吗?

    table class t errors tr td b IP b b Command b b Executed b td tr table
  • Firefox 附加组件 ID 约定

    我正在使用 WebExtension API 编写 Firefox 附加组件 一些API 例如browser storage sync 需要一个附加 ID在附加组件中明确声明manifest json file The ID 的文档 sta
  • FB.getLoginStatus 始终返回 status='unknown'

    如果我登录到 facebook com 我希望调用 FB getLoginStatus 将返回 status not authorized 相反 即使我为 force 参数传递 true 它也会返回 status unknown 如果我调用
  • Delphi 类似“闹钟”的应用程序

    我需要制作一个简单的闹钟应用程序 它不是播放声音 而是将文件上传到 ftp 弄清楚了后者 事实证明计时器是无效的当涉及到执行一个线程时 这是我到目前为止得到的 var ttime tDateTime timerstr string time
  • sqlite 数据库在插入时被锁定

    有一个简单的代码 var insert INSERT INTO files Name FullName MD5 VALUES Name FullName MD5 using var con db OpenConnection using v
  • Hibernate 4.3.6 QuerySyntaxException:连接所需的路径

    HQL 连接查询有问题 谁能告诉我下面的连接 HQL 查询有什么问题吗 我使用 Hibernate 4 3 6 JDK 7 和 Groovy 2 2 def query select lip referenceId from Parcel
  • 在 HQL 中执行日期/时间数学?

    我正在寻找如何在 HQL 查询中执行日期 时间数学 具体来说 如何从结果中添加或减去 x 时间量current timestamp 功能 或者我是否必须为此使用 SQL 并希望正在运行的任何数据库都支持它 HQL查询示例 FROM Rand
  • 如何在MVC4的编辑模式下将值传递给下拉字段?

    您好 我的视图中有三个字段 这三个字段已下拉 我想在单击编辑按钮时将值传递给这些字段 这是需要传递到下拉字段的值 下面提到我的观点 在我看来 我有很多下拉菜单 但一旦我知道如何将值传递给一个下拉菜单 就意味着我将为另一个下拉菜单执行此操作
  • python 的 dict .get() 方法如何检查默认参数?

    我遇到了一种奇怪的 Python 行为 很难向自己解释 当我传递一个默认值以从字典中获取键时 看起来它首先尝试找到该默认值 然后查看键是否存在 如果字典中存在该键 则会抛出错误 为什么会发生这种情况 from collections imp
  • Gradle:Uber Jar 创建失败并显示“无法扩展 ZIP”

    我正在尝试使用 Gradle 创建一个 Fat Uber jar 不幸的是 我不断遇到以下错误 gt Task fatJar FAILED FAILURE Build failed with an exception What went w
  • PHP 和 Codeigniter。如何返回数组对象而不是普通数组?

    在 Codeigniter 中 我创建一个数组并将其返回给用户 我正在创建这样的数组 结果是数据库查询的返回形式 array email gt result 现在它输出 email id 629 desc 0000 value 1 0000
  • 可编辑复杂SQL查询的QTableView

    如何制作可编辑的 QTableView 显示复杂 SQLite 查询中的数据 我需要用多个 SQLite 表中的数据填充 QTableView 这需要由用户可编辑 由于查询有点复杂 包括 JOIN 和 CASE WHEN 等 我通过 QSq
  • vbs 脚本中的 If-Else If 语句

    我需要知道如何制作 if else if 语句 以便根据用户按下的按钮 答案 显示不同的消息 您可以使用If ElseIf and End If指令 If i 10 Then response write Just started Else
  • 如何在 jQuery 中获取第一个元素而不是使用 [0]?

    我是 jQuery 的新手 如果这是一个愚蠢的问题 我深表歉意 当我使用它使用 id 查找元素时 我知道总是有一个匹配项 为了访问它 我将使用索引 0 有更好的方法吗 例如 var gridHeader grid GridHeader 0
  • 将包含字典的单元格分解为 Pandas 中的多行[重复]

    这个问题在这里已经有答案了 如何将包含字典的单元格中的内容分解为 Pandas 中的多行 ID CODES A 1407273790 5 1801032636 20 1174813554 1 1215470448 2 1053754655
  • 加载多个 javascript 文件 - jquery

    我使用下面的代码动态加载js脚本 getScript site js test js done function script textStatus console log test js textStatus 如果我想在同一段代码中加载多
  • 简单的 D3 演示不适用于更改后的结构

    我正在关注official教程 由于结构相当简陋 我决定做一个更干净的结构
  • 从简单的 get 返回 403 Forbidden 但在浏览器中加载正常

    我试图从页面获取一些数据 但它返回错误 403 禁忌 我以为是用户代理 但我尝试了几个用户代理 它仍然返回错误 我也尝试使用图书馆假用户代理但我没有成功 with requests Session as c url headers User
  • 可放入 Famous.js 中吗?

    我正在尝试在known djs 中实现可拖动 可放置的图像 也就是说 如果图像掉落到正确的表面上 就会触发事件 在我的可拖动图像上 我正在监听 touchend 事件 这里没问题 我还有一个连接到我的 目标 表面的 touchend 事件
  • 为什么 List 分区有效而 span 无效

    我有这个 Char Int pars 的列表 它包含仅具有唯一 Char 值的对 List 3 d 1 e 3 h 3 i 1 l 3 o 2 r 2 t 1 w 1 我需要将此列表分为 2 个 一个包含任何具有 d 字符的对 另一个是其余