私信  •  关注

Reut Sharabani

Reut Sharabani 最近创建的主题
Reut Sharabani 最近回复了
6 年前
回复了 Reut Sharabani 创建的主题 » 如何将具有特定条件的列表合并并创建到python中的嵌套列表?

首先根据 a

c = zip(a, b)

c = {k: [bi for ai, bi in g] for k, g in groupby(c, lambda i: i[0])}

现在连接到列表列表(按顺序):

c = [v for k, v in sorted(c.items())]

现在您需要一个函数来按值差距进行拆分:

def split_max_gap(l, max_gap=2):
    acc = [l[0]]
    for x, y in zip(l, l[1:]):
        if abs(x - y) > max_gap:
            yield acc
            acc = [y]
            continue
        acc.append(y)
    if acc:
        yield acc

c = map(split_max_gap, c)

扁平化:

c = list(chain.from_iterable(c))

c 现在应该保持:

[[1, 3], [2, 3], [6, 7]]
5 年前
回复了 Reut Sharabani 创建的主题 » Python从另一个字典列表更新字典列表中的值

我强烈建议在有唯一密钥要匹配时使用映射:

update_mapping = {d['id']: d for d in update_list}
score_list = [update_mapping.get(d['id'], d) for d in score_list]
6 年前
回复了 Reut Sharabani 创建的主题 » 将python字典组合成字符串csv

更实用的解决方案:

# don't shadow `dict`
d = {'AB': 1, 'AE': '0', 'CC': '3'}

# `starmap` flattens argument to a function
# needed for `str.format`
from itertools import starmap

# build parts from dictionary items
parts = starmap('{}{}'.format, d.items())

# build end result from parts
result = ','.join(parts)

如果你想要一个健壮的解决方案,你应该使用 csv 模块并查看 DictWriter