簡體   English   中英

Python groupby itertools 方法

[英]Python groupby itertools method

我是 python 編程的新手。我無法創建以下代碼:

定義一個 function even_or_odd,它將 integer 作為輸入,如果給定的數字分別是偶數和奇數,則返回字符串偶數和奇數。 根據上面定義的 function 將列表 n = [10, 14, 16, 22, 9, 3, 37] 的數字分為兩組,即偶數和奇數。 提示:使用 itertools 模塊的 groupby 方法。 遍歷獲得的 groupby object 並打印它的組名和與組關聯的元素列表。

我試過下面的代碼:

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)
當我認為您的意思是group groups

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM