追加到Python字典中的列表[重复]

2024-01-15

有没有更优雅的方式来编写这段代码?

我在做什么:我有钥匙和日期。可以有多个日期分配给一个键,因此我正在创建一个日期列表字典来表示它。下面的代码工作正常,但我希望有一个更优雅和 Pythonic 的方法。

dates_dict = dict() 
for key,  date in cur:
    if key in dates_dict:
        dates_dict[key].append(date)
    else:
        dates_dict[key] = [date] 

我期望下面的内容能够工作,但是我不断收到 NoneType has no attributeappend 错误。

dates_dict = dict() 
for key,  date in cur:
    dates_dict[key] = dates_dict.get(key, []).append(date) 

这可能与以下事实有关:

print([].append(1)) 
None 

but why?


list.append回报None,因为它是就地操作,并且您将其分配回dates_dict[key]。所以,下次当你这么做的时候dates_dict.get(key, []).append你实际上在做None.append。这就是它失败的原因。相反,你可以简单地做

dates_dict.setdefault(key, []).append(date)

但是,我们有collections.defaultdict https://docs.python.org/2/library/collections.html#collections.defaultdict仅用于此目的。你可以做这样的事情

from collections import defaultdict
dates_dict = defaultdict(list)
for key, date in cur:
    dates_dict[key].append(date)

这将创建一个新的列表对象,如果key字典中没有找到。

Note:自从defaultdict如果在字典中找不到该键,将创建一个新列表,这会产生意想不到的副作用。例如,如果您只是想检索键的值,但该值不存在,它将创建一个新列表并返回它。

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

追加到Python字典中的列表[重复] 的相关文章

  • 在python中将数据库表写入文件的最快方法

    我正在尝试从数据库中提取大量数据并将其写入 csv 文件 我正在尝试找出最快的方法来做到这一点 我发现在 fetchall 的结果上运行 writerows 比下面的代码慢 40 with open filename a as f writ
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • 如何通过 python 多处理利用所有核心

    我一直在摆弄Python的multiprocessing现在已经使用了一个多小时的功能 尝试使用并行化相当复杂的图形遍历函数multiprocessing Process and multiprocessing Manager import
  • Python Tkinter 模块不显示输出

    我正在尝试学习 Python 并尝试使用 Python 中的 GUI 并遇到了这个 Tkinter 模块 我的代码运行 但运行时窗口没有出现 我的代码如下 from Tkinter import to create a root windo
  • python 中的 <> 运算符有什么作用?

    我刚刚遇到这个here http www feedparser org feedparser py 总是这样使用 if string1 find string2 lt gt 1 pass 什么是 lt gt 运算符这样做 为什么不使用通常的
  • Python将文本文件解析为嵌套字典

    考虑以下数据结构 HEADER1 key value key value HEADER2 key value key value HEADER3 key value HEADER4 key value key value 原始数据中没有缩进
  • Prolog 中的隔离列表

    我很难理解如何让我的代码显示由偶数和奇数组成的隔离列表 我什至不确定我的理解缺乏什么 显然我对这门语言很陌生 必须在学校使用它 我的命令式和功能性思维不会让我知道这到底是怎么回事 哈哈 现在 不 我不是要求你做我的作业 我只是请你帮我看看我
  • 两个不同长度的数据帧的列之间的余弦相似度?

    我在 df1 中有文本列 在 df2 中有文本列 df2 的长度将与 df1 的长度不同 我想计算 df1 text 中每个条目与 df2 text 中每个条目的余弦相似度 并为每场比赛给出分数 输入样本 df1 mahesh suresh
  • 在骨架图像中查找线 OpenCV python

    我有以下图片 我想找到一些线来进行一些计算 平均长度等 我尝试使用HoughLinesP 但它找不到线 我能怎么做 这是我的代码 sk skeleton mask rows cols sk shape imgOut np zeros row
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • 检测是否从psycopg2游标获取?

    假设我执行以下命令 insert into hello username values me 我跑起来就像 cursor fetchall 我收到以下错误 psycopg2 ProgrammingError no results to fe
  • 使用 PIL 在 Tkinter 中显示动画 GIF

    我正在尝试制作一个程序来使用 Tkinter 显示动画 GIF 这是我最初使用的代码 from future import division Just because division doesn t work right in 2 7 4
  • AWS Lambda 不读取环境变量

    我正在编写一个 python 脚本来查询 Qualys API 中的漏洞元数据 我在 AWS 中将其作为 lambda 函数执行 我已经在控制台中设置了环境变量 但是当我执行函数时 出现以下错误 module initialization
  • 带 Flask 的 RPI dht22:无法将第 4 行设置为输入 - 等待 PulseIn 消息超时

    我正在尝试制作一个 Raspberry Pi 3 REST API 使用 DHT22 提供温度和湿度 整个代码 from flask import Flask jsonify request from sds011 import SDS01
  • rpy2 无法加载外部库

    希望有人能帮忙解决这个问题 R版本 2 14 1rpy2版本 2 2 5蟒蛇版本 2 7 3 一直在尝试在 python 脚本中使用 rpy2 加载 R venneuler 包 该包以 rJava 作为依赖项 venneuler 和 rJa
  • pandas 中数据帧中的随机/洗牌行

    我目前正在尝试找到一种方法来按行随机化数据框中的项目 我在 pandas 中按列洗牌 排列找到了这个线程 在 pandas 中对 DataFrame 进行改组 排列 https stackoverflow com questions 157
  • 如何获取pandas中groupby对象中的组数?

    我想知道有多少个独特的组需要执行计算 给定一个名为 groupby 的对象dfgroup 我们如何找到组的数量 简单 快速 Pandaic ngroups 较新版本的 groupby API pandas gt 0 23 提供了此 未记录的
  • 将 Keras 集成到 SKLearn 管道?

    我有一个 sklearn 管道 对异构数据类型 布尔 分类 数字 文本 执行特征工程 并想尝试使用神经网络作为我的学习算法来拟合模型 我遇到了输入数据形状的一些问题 我想知道我想做的事情是否可能 或者我是否应该尝试不同的方法 我尝试了几种不
  • 如何使用 python 定位和读取 Data Matrix 代码

    我正在尝试读取微管底部的数据矩阵条形码 我试过libdmtx http libdmtx sourceforge net 它有 python 绑定 当矩阵的点是方形时工作得相当好 但当矩阵的点是圆形时工作得更糟 如下所示 另一个复杂问题是在某
  • 用于插入或替换 URL 参数的 Django 模板标签

    有人知道 Django 模板标签可以获取当前路径和查询字符串并插入或替换查询字符串值吗 例如向 some custom path q how now brown cow page 3 filter person 发出请求 电话 urlpar

随机推荐

  • SSH:本地主机登录成功后关闭连接

    当我尝试 ssh 进入 localhost 时 它接受公钥并立即关闭连接 我已经浏览谷歌结果页面几个小时了 但没有任何进展 这就是我得到的ssh v user localhost OpenSSH 5 9p1 OpenSSL 0 9 8r 8
  • Javascript旧语法到箭头函数的转换

    所以我想在没有 jquery 或其他库的情况下使用这个例子 我有这个代码 let xmlHttp new XMLHttpRequest xmlHttp onreadystatechange function 正如你所看到的 它使用旧的风格f
  • 在 R 中生成 DNA 密码子组合

    我在 R 中生成随机 DNA 序列 其中每个序列都有设定的长度 并包含用户指定的核苷酸分布 我想要做的是确保特定的核苷酸运行不会在给定的序列中生成 不允许的运行有 aga agg taa tag 和 tga 这是我的代码 它只是生成可能发生
  • jQuery 令人不快的 Draggable、Resizing 交互

    当我调整第一个 div 的大小时 它会导致下一个 div 在列中 向上 跳跃 重新创建 顶部 div 拖动调整大小手柄 jQuery function portlet draggable grid 25 25 resizable grid
  • 禁用字体连字 CSS(字母组合)

    现代浏览器会自动将一些字母 最常见的是 f 和 i 组合成一个称为连字的单个字符 这通常会优化易读性 即更容易阅读 但有时这可能不是设计师想要的 就我个人而言 我只在Chrome 版本53 0 2785 101 虽然我不能确定 但 我相信这
  • 关于 Android API 中的新方法和已弃用的方法

    我是安卓开发新手 我正在学习过时的书籍 所以我对新方法感到非常困惑 我将制作一个简单而轻便的应用程序 即使在旧设备上也可以运行 因此 当我创建一个新的android项目时 我将 Minimum required SDK 设置为API 8 T
  • 返回导出模块的最佳方法

    在我的学习之旅中 我开始研究 javaScript Node 的模块 让我困惑的是 当模块内完成功能的时间未知时 如何从模块返回信息 这将按预期返回 控制器 js const myModule require myModule var my
  • React中如何通过Key查找元素?

    ul li 1234 li li 5678 li li 9 li ul 如何通过Key查找元素并更改元素值 如addClass innerHtml 注意 在 Plain React 中 没有 Flux 或 Jsx 进入key已在 React
  • 为什么 groupby 和rolling 不能一起工作?

    我有一个从 coinmarketcap 中抓取的 df 我正在尝试计算 close price 列的波动率指标 但是当我使用 groupby 时 我收到一条错误消息 final coin data vol final coin data g
  • Doctrine2:[语义错误]如果不选择至少一个根实体别名,则无法通过标识变量选择实体

    这是我使用查询生成器进行的查询 它运行得很好 带来了用户表和模块表的所有结果 其中具有多对多关联 public function getUser id qb this gt getEm gt createQueryBuilder gt se
  • 具有引用完整性的 NoSQL/RDBMS 混合(删除级联)?

    是否有一种数据库可以为您带来引用完整性的优势并能够使用 SQL 类型语言进行查询 同时还可以松散地定义实体的数据属性以及它们之间的关系 例如 采用 RBAC 类型模型 其中有权限 用户 用户组和角色 复杂 灵活的模型可能具有以下规则 角色可
  • Python:如何创建一个要求准确字数的函数?

    这是我到目前为止所拥有的 import string 所以我让用户写一个 5 个单词的句子 只要求 5 个单词 def main sentence raw input Enter a 5 worded sentence if len wor
  • IIS 7.5 没有图像 css js 显示

    我有 2 台 Windows 2008 R2 x64 服务器 NLB ARR 具有共享配置 我的应用程序文件位于网络共享中 ASP net 页面 aspx 运行良好 但 css 图像 js 不起作用 我还有一个 htm 文件 可以很好地显示
  • 反编译Obj C框架

    我想反编译iOS Twitter 框架 如果事实上我从xcode 的模拟器中获取twitterd 文件 该文件已预编译为在x86 而不是ARM 上运行 至于我使用的工具http code google com p i386codedump
  • 需要快速读取 Android 传感器

    Issue 我正在开发一个应用程序 每 5 需要一个新的加速度数据 毫秒 我的方法 我创建了一个远程服务 只读取加速度 来自 SensorManager 的数据 我还将读取速率设置为 初始化时 延迟最快 传感器管理器 然后我也使用IPC进行
  • 如何在 Windows 7 64 位上安装 GitHub 时修复此错误

    http picsmashup com images jnasdh JPG http picsmashup com images jnasdh JPG 组件 Microsoft NET Framework 4 x86 和 x64 安装失败
  • Wix Burn 捆绑包 - 必须是管理员

    我创建了一个 WIX 刻录包 在捆绑包中 我安装了 Net 4 如果未安装 然后再安装 2 个 msi 文件 1 是第三部分 msi 另一个是我使用 WIX 为我的软件创建的 msi 我需要成为计算机上的管理员才能运行这些 msi 文件 如
  • OpenCV 中组合仿射变换的内置函数?

    Opencv中有没有结合仿射变换的内置函数 我也可以自己编写它 但如果可能的话我会坚持使用库函数 Cheers 现在我这样做 我分配 a1 a2 r 矩阵 所有 3x3 眼睛 我用变换矩阵 a1aff a2aff 替换前两个矩阵的顶部部分
  • parseInt 与 unary plus,何时使用哪个?

    这条线有什么区别 var a parseInt 1 10 a 1 和这条线 var a 1 a 1 This jsperf测试 http jsperf com parseint vs unary operator表明一元运算符在当前的 ch
  • 追加到Python字典中的列表[重复]

    这个问题在这里已经有答案了 有没有更优雅的方式来编写这段代码 我在做什么 我有钥匙和日期 可以有多个日期分配给一个键 因此我正在创建一个日期列表字典来表示它 下面的代码工作正常 但我希望有一个更优雅和 Pythonic 的方法 dates