循环字符串时向字典添加多个值

2024-01-12

对Python 3仍然是超级新手,并且遇到了问题...我正在尝试创建一个函数,它返回一个字典,其中键是每个单词的长度,值是字符串中的单词。

例如,如果我的字符串是:“狗快速向前跑到公园”,我的字典应该返回{2: ['to'] 3: ['The', 'run', 'the'], 4: ['dogs', 'park], 7: ['quickly', 'forward']}

问题是,当我循环遍历这些项目时,它仅附加字符串中的单词之一。

def word_len_dict(my_string):
    dictionary = {}
    input_list = my_string.split(" ")
    unique_list = []
    for item in input_list:
        if item.lower() not in unique_list:
            unique_list.append(item.lower())
    for word in unique_list:
        dictionary[len(word)] = []
        dictionary[len(word)].append(word)
    return (dictionary)

print (word_len_dict("The dogs run quickly forward to the park"))

代码返回

{2: ['to'], 3: ['run'], 4: ['park'], 7: ['forward']}

有人能指出我正确的方向吗?也许不能自由地给我答案,但是在将缺失的单词添加到列表中时,我接下来需要考虑什么。我以为将它们添加到列表中就可以了,但事实并非如此。

谢谢你!


这将解决您的所有问题:

def word_len_dict(my_string):
    input_list = my_string.split(" ")

    unique_set = set()
    dictionary = {}

    for item in input_list:
        word = item.lower()
        if word not in unique_set:
            unique_set.add(word)
            key = len(word)
            if key not in dictionary:
                dictionary[key] = []
            dictionary[key].append(word)

    return dictionary

每次遇到新单词时,您都会擦除字典条目。还有一些效率问题(在增长列表时搜索成员资格会导致 O(n) 任务的 O(n**2) 算法)。用集合成员资格测试替换列表成员资格测试纠正了效率问题。

它为您的示例句子提供了正确的输出:

>>> print(word_len_dict("The dogs run quickly forward to the park"))
{2: ['to'], 3: ['the', 'run'], 4: ['dogs', 'park'], 7: ['quickly', 'forward']}

我注意到其他一些发布的解决方案无法将单词映射为小写和/或无法删除重复项,而这正是您明确想要的。

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

循环字符串时向字典添加多个值 的相关文章

  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 当变量取特定值时如何使 PyCharm 中断?

    我有一本大字典 其中一些元素偶尔会出现非法值 我想弄清楚非法值从何而来 PyCharm 应该不断监视我的字典的值 一旦它们中的任何一个取了非法值 它就应该中断并让我检查程序的状态 我知道我可以通过为我的字典创建一个 getter sette
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • 如何使用 Pandas、Numpy 加速 Python 中的嵌套 for 循环逻辑?

    我想检查一下表的字段是否TestProject包含了Client端传入的参数 嵌套for循环很丑陋 有什么高效简单的方法来实现吗 非常感谢您的任何建议 def test parameter a list parameter b list g
  • Python beautifulsoup 仅限 1 级文本

    我看过其他 beautifulsoup 得到相同级别类型的问题 看来我的有点不同 这是网站 我正试图拿到右边那张桌子 请注意表的第一行如何展开为该数据的详细细分 我不想要那个数据 我只想要最顶层的数据 您还可以看到其他行也可以展开 但在本例
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • Docker 中的 Python 日志记录

    我正在 Ubuntu Web 服务器上的 Docker 容器中测试运行 python 脚本 我正在尝试查找由 Python Logger 模块生成的日志文件 下面是我的Python脚本 import time import logging
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • 如何初始化静态地图?

    你会如何初始化静态Map在Java中 方法一 静态初始化方法二 实例初始化 匿名子类 或者 还有其他方法吗 各自的优点和缺点是什么 这是说明这两种方法的示例 import java util HashMap import java util
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 如何在 pygtk 中创建新信号

    我创建了一个 python 对象 但我想在它上面发送信号 我让它继承自 gobject GObject 但似乎没有任何方法可以在我的对象上创建新信号 您还可以在类定义中定义信号 class MyGObjectClass gobject GO
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • 在 JavaScript 函数的 Django 模板中转义字符串参数

    我有一个 JavaScript 函数 它返回一组对象 return Func id name 例如 我在传递包含引号的字符串时遇到问题 Dr Seuss ABC BOOk 是无效语法 I tried name safe 但无济于事 有什么解
  • 使用 z = f(x, y) 形式的 B 样条方法来拟合 z = f(x)

    作为一个潜在的解决方案这个问题 https stackoverflow com questions 76476327 how to avoid creating many binary switching variables in gekk
  • Kivy - 单击按钮时编辑标签

    我希望 Button1 在单击时编辑标签 etykietka 但我不知道如何操作 你有什么想法吗 class Zastepstwa App def build self lista WebOps getList layout BoxLayo

随机推荐

  • 为 newtype 创建 MonadBaseControl 实例

    假设我有简单的新类型声明 newtype Foo a Foo unFoo ReaderT Int IO a 我想创建 MonadBaseControl IO 的 Foo 实例 这应该很容易 因为 ReaderT Int IO 已经是 Mon
  • Django 用户的默认外键值

    我已通读过http www b list org weblog 2006 jun 06 django tips extending user model http www b list org weblog 2006 jun 06 djan
  • 新 User.employeeId ExtensionProperty 不起作用

    最近我们的租户出现了一个新的employeeId归因于user entity 我们拥有超过 40 000 个用户帐户 其中一些创建为纯 Azure AD 用户 其他创建为邮件用户 通过 Exchange Online 对于许多帐户 尝试PO
  • 基于原点的约束函数(路径依赖类型?类型生成?)

    抱歉 标题太糟糕了 不确定有更好的标题 这是我的问题的总体简化 抱歉 如果它看起来如此微不足道 那么它毫无意义 class RList T data List T def map V f T gt V RList V 的想法RList 受限
  • 使用 Powershell 编辑快捷方式 (.lnk) 属性

    我找到了一种令人讨厌的 VBS 方法来执行此操作 但我正在寻找一个本机 PoSh 过程来编辑 LNK 文件的属性 目标是连接到远程计算机 复制具有大多数正确属性的现有快捷方式 并编辑其中的一些属性 如果编写新的快捷方式文件会更容易 那也可以
  • Firestore 本地 http 与真实数据库:Cloud Firestore 模拟器未运行,因此数据库操作将失败并出现“默认凭据”错误

    我想在本地运行 firebase http 云函数来访问真正的远程 firestore 数据库 为此 我使用以下命令在本地运行我的函数 FIREBASE CONFIG path to credential json GOOGLE APPLI
  • com.twitter:util-core 中存在冲突的跨版本后缀

    我升级到 sbt 0 13 这个问题开始出现 我在这里找到了解释 https groups google com forum topic simple build tool MoApqIwx4R0 https groups google c
  • 如何创建自定义导航抽屉,打开与抽屉 onitemclick 相邻的 ListView?

    我创建了简单的导航抽屉 但是当我遇到如图所示的导航抽屉时 我被卡住了 我不知道如何实现这种功能 在此图像中 城市 是导航抽屉的项目 当我单击城市时 它会打开与其相邻的列表 这是完整的代码 因为我不知道细节 它可能无法真正满足您的要求 首先我
  • VBA 打开 Excel 文件

    我正在尝试使用 VBA 打开 Excel 文件文件夹中的 Excel 文件 我指示我的代码将最终用户直接带到该文件夹 并允许他从对话框中选择文件 但即使从对话框中选择文件后 我也无法打开该文件 我对问题的理解是 我错过了选择文件后打开文件的
  • 内联命名空间可以用来保持共享库的向后兼容性吗?

    C 内联命名空间的基本原理是源代码和二进制兼容性 请参阅 Herb Sutter 的论文 链接为N2535 http www open std org jtc1 sc22 wg21 docs papers 2008 n2535 htm 但我
  • 响应 json 时禁用“Cookie”标头

    我想在以 json 形式响应时禁用 删除 Cookie 标头 其实我可以设置Config set session driver array 使用 Laravel 4 2 进行过滤 如果我在 L5 版本 5 0 5 中执行此操作 我会在日志文
  • 使用 .NET Core 在 Mac OSX 上进行 Office (Excel) COM 互操作?

    我所在的团队目前专门使用 C NET 创建 Windows 桌面应用程序 这些应用程序通过 Office COM Interop 与 Microsoft Excel 的本地用户实例进行交互 我目前负责指定一个新产品 但我被告知 除非该应用程
  • 使用 C# 编码的具有 https 支持的 http 侦听器

    我找到了很多如何设置 httplistener 以使用 HTTPS 的答案 但每个解决方案都需要使用命令行 我想这是最快的方法 但我想编写 C 类来处理这个问题 在旧的解决方案中 我使用了网络服务器类 在互联网上的某个地方找到 我不记得确切
  • 在 C++ 中使用 gsl 时如何避免静态成员函数

    我想在 C 类中使用 GSL 而不将成员函数声明为static 这样做的原因是因为我对它们不太了解 对线程安全也不太确定 从我读到的来看 std function可能是一个解决方案 但我不确定如何使用它 我的问题归结为如何删除static在
  • JBoss 6:将 EJB 注入 servlet

    Folks 每次新版本的 JBoss 推出时 我都必须重新学习并浪费时间在这些东西上 这让我非常恼火 我有一个在 JNDI 空间中发现并声明的无状态 EJB 10 01 53 044 INFO org jboss ejb3 proxy im
  • AWS Cognito 用户池 - 只读客户端

    标题中已经说明了问题 有没有办法为 Amazon Cognito 用户池创建仅具有读取权限的应用程序客户端 这有点奇怪 但是当我取消选中 可写属性 部分中的所有框 用户池 gt 常规设置 gt 添加另一个应用程序客户端 时 它会返回以下警告
  • 驱动程序可执行文件的路径必须由 webdriver.chrome.driver 系统属性设置 - Selenium 错误

    我有一个令人恼火的 Selenium 错误 驱动程序可执行文件的路径必须由 webdriver chrome driver 系统属性设置 这是我正在使用的代码 Environment SetEnvironmentVariable webdr
  • Perl后台进程

    我正在尝试在 perl 中运行后台进程 我创建了一个子进程 用于调用另一个 perl 脚本 我想与这个子进程并行运行几行代码 子进程完成后 我想打印一行代码 主要脚本 usr bin perl 1 print before the chil
  • 考虑中心的顺序,重新标记 kmean 结果中的样本

    我正在使用 kmeans 来聚类我的数据 对于生成的结果我有一个计划 我想根据订购的中心重新标记样本 考虑以下示例 a c a b c d e F i j k l m n b c 1 2 3 20 21 21 40 41 42 4 23 5
  • 循环字符串时向字典添加多个值

    对Python 3仍然是超级新手 并且遇到了问题 我正在尝试创建一个函数 它返回一个字典 其中键是每个单词的长度 值是字符串中的单词 例如 如果我的字符串是 狗快速向前跑到公园 我的字典应该返回 2 to 3 The run the 4 d