python - Python groupby itertools 方法
问题描述
我是 python 编程新手。我无法创建以下代码:
定义一个函数 even_or_odd,它接受一个整数作为输入,如果给定的数字分别是偶数和奇数,则返回字符串偶数和奇数。根据上述定义的函数,将列表 n = [10, 14, 16, 22, 9, 3 , 37] 的数量分为两组,即偶数和奇数。提示:使用 itertools 模块的 groupby 方法。遍历获得的 groupby 对象并打印它的组名和与组关联的元素列表。
我试过下面的代码:
import itertools
def even_or_odd(n):
if n%2==0:
return 'even'
else:
return 'odd'
group=[]
uniquekeys=[]
n = [10, 14, 16, 22, 9, 3 , 37]
for k,g in itertools.groupby(n, even_or_odd(n)):
groups.append(list(g))
uniquekeys.append(k)
It is giving "TypeError: unsupported operand type(s) for %: 'list' and 'int' "
解决方案
当您尝试通过时,itertools.groupby
even_or_odd
您可以使用n
. even_or_odd
需要一个int
, 但n
它是一个列表。当我认为你的意思时,只需将其更改为itertools.groupby(n, even_or_odd)
Also you append to 。groups
group
推荐阅读
- linux - 将文件所有权更改为 root 但原始用户仍然可以编辑文件?
- java - JPA Hibernate Spring Data如何在不重新部署所有项目的情况下测试查询
- niftynet - 不知道如何生成采样位置:
- go - gorilla cookie 会话是否会持续服务器重建?
- java - maven deploy 上传旧版本和当前版本
- excel - VBA - 保存文件 - 部分根据单元格值确定文件路径
- javascript - 从 html 访问 typescript 编译的 js
- java - 多个文件上传jsp & servlet
- php - 带有 Homestead 和 php-debug 的 Atom IDE 和 Xdebug Vagrant:无法使其暂停执行到断点并进行调试
- c# - 复杂的 Json 响应在 c# 类中未正确映射