gpt4 book ai didi

python - 在列表中查找数字并连接 python 中数字之间的所有项目

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:29 24 4
gpt4 key购买 nike

我有一个看起来像这样的列表:

list1 = ['390140', 'string3', 'string2', '631019', 'string1', '', '6059152', 'string4', 'string5', '', '6951201', 'string6']

我必须将这个列表转换为字典列表,如下所示:

list2 = [{'code':'390140','description': 'string3 string2'}, {'code':'631019','description':'string1 '},{'code':'6051952','description': 'string4 string5', ...]

而每个数字都是一个code,后面的字符串是description。我已经尝试对数字进行索引,然后将主列表分成子列表,如下面的方法所示。这种方法行不通。

#x = [item for item in list1 if item.isdigit()]

idx = [idx for idx, item in enumerate(list1) if item.isdigit()]

for i in idx:
list2.append({'code': list1[i], 'description': ' '.join(list1[idx[i]:idx[i+1]])})

list2 是我希望获得的输出。

最佳答案

不久,itertools.groupby 函数:

from itertools import groupby

list1 = ['390140', 'string3', 'string2', '631019', 'string1', '', '6059152', 'string4', 'string5', '', '6951201', 'string6']
groups = groupby(list1, key=str.isdigit)
codes = [{'code': next(g), 'description': ' '.join(next(groups)[1])} for _, g in groups]
print(codes)

输出:

[{'code': '390140', 'description': 'string3 string2'},
{'code': '631019', 'description': 'string1 '},
{'code': '6059152', 'description': 'string4 string5 '},
{'code': '6951201', 'description': 'string6'}]

关于python - 在列表中查找数字并连接 python 中数字之间的所有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58606419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com