私信  •  关注

ddejohn

ddejohn 最近创建的主题
ddejohn 最近回复了
3 年前
回复了 ddejohn 创建的主题 » 考虑序列的Python中重复值的计数

这个 itertools.groupby 函数是最受欢迎的,但也许未来的读者会喜欢一种算法来实际查找这些分组:

def groups(*items):
    i = 0
    groups = []
    while i < len(items):
        item = items[i]
        j = i + 1
        count = 1
        while j < len(items):
            if items[j] == item:
                count += 1
                j += 1
            else:
                break
        i = j
        groups.append((item, count))
    return groups
3 年前
回复了 ddejohn 创建的主题 » 比较python中字典列表中的值

更实用(但效率稍低)的方法:

from itertools import groupby
from functools import reduce
from operator import itemgetter


new_data = []
for _, g in groupby(sorted(data, key=itemgetter("Id")), key=itemgetter("Id")):
    new_data.append(reduce(lambda d1, d2: {**d1, **d2}, g))
3 年前
回复了 ddejohn 创建的主题 » Python不会删除单词,但适用于单个字母

你需要分开 f 在空格上,为了重复单词:

h = []
for word in f.split():
    if word not in forbidden_words:
        h.append(word)
" ".join(h)

或者,使用生成器表达式:

" ".join(word for word in f.split() if word not in forbidden_words)