当前位置: 首页 > 面试题库 >

itertools.groupby()无法正确分组

胡星汉
2023-03-14
问题内容

我有此数据:

self.data = [(1, 1, 5.0),
             (1, 2, 3.0),
             (1, 3, 4.0),
             (2, 1, 4.0),
             (2, 2, 2.0)]

当我运行此代码时:

for mid, group in itertools.groupby(self.data, key=operator.itemgetter(0)):

因为list(group)我得到:

[(1, 1, 5.0),
 (1, 2, 3.0),
 (1, 3, 4.0)]

这就是我想要的。

但是如果我用1而不是0

for mid, group in itertools.groupby(self.data, key=operator.itemgetter(1)):

按元组中的第二个数字分组,我只会得到:

[(1, 1, 5.0)]

即使还有其他元组在该1(第二个)位置具有“ 1”。


问题答案:

itertools.groupby使用相同的密钥将
连续的 项目收集在一起。如果希望所有项目都使用相同的键,则必须先进行排序self.data

for mid, group in itertools.groupby(
    sorted(self.data,key=operator.itemgetter(1)), key=operator.itemgetter(1)):


 类似资料:
  • 问题内容: 我正在使用Play编写一个部署在Tomcat中的webapp。因为该应用程序不会处理大量数据,所以我在Hibernate中使用默认的H2数据库。当我想部署新版本的应用程序时,我关闭了tomcat,擦除了旧的webapp和WAR,添加了新的WAR,然后开始备份。 直到几天前,当我添加数据库组件时,它一直有效。现在,我经常无法重新部署该应用程序。当我删除旧目录时,它将使用以下结构自动重新生

  • 问题内容: 我想要一个JFrame,在左右两侧有一个边框,边框为黑色,宽度为withfOfJFrame / 10。 现在,我的尝试如下所示: 这会在左右两侧添加一个黑色边框,但是该边框具有固定的大小,并且在调整窗口大小时不会重新计算。大小甚至不是800(JFrame的开始宽度)的1/10。 我究竟做错了什么?还是有更好的方法来做到这一点? 问题答案: 您可以使用和适当的权重来获得所需的结果:

  • 问题内容: 我正在尝试设置控制器,但是很遗憾无法查看输出…一切都正确呈现。当我转到404页面时。从Netbeans运行我的应用程序转到 app-config.xml web.xml 我如何调试它,看看有什么用,什么没用? 更新资料 Netbeans中的GlassFish服务器日志显示 问题答案: 您的名字映射到中吗?从您先前的问题中,我看到: 网址不匹配格式。尝试一种可能的解决方法。

  • 我在linux box上启动xampp时面临以下问题。我能够启动mysql和proFPD,但我不能卫星apache。它显示另一个网络服务器已经在运行。 XAMPP:启动Apache失败。XAMPP:另一个web服务器已在运行。XAMPP:启动MySQL已经在运行。XAMPP:启动ProFTPD已在运行。

  • 已从deb软件包安装docker1.6,但在运行时出现问题: sudo docker版本客户端版本: 1.6.2客户端API版本: 1.18 Go版本(客户端): go1.4.2 Git提交(客户端): 7c8fca2 OS/Arch(客户端): linux/amd64 FATA[0000]获取超文本传输协议:///var/run/docker.sock/v1.18/version:拨号unix

  • 我下载了cratedb的源代码,但无法正确编译,下面是详细说明:jdk:1.8 /workspace/crate编译 应该是elasticsearch包不见了,下一步怎么办? 谢谢!