python - Python:合并列表中的相邻数字
问题描述
是否可以合并字符列表中的数字?
我有一个包含一些字符的列表:
my_list = ['a', 'f', '£', '3', '2', 'L', 'k', '3']
我想连接相邻的数字如下:
my_list = ['a', 'f', '£', '32', 'L', 'k', '3']
我有这个,它工作正常,但我真的不喜欢它是如何出来的。
def number_concat(my_list):
new_list = []
number = ""
for ch in my_list:
if not ch.isnumeric():
if number != "":
new_list.append(number)
number =""
new_list.append(ch)
else:
number = ''.join([number,ch])
if number != "":
new_list.append(number)
return new_list
最好的方法是什么?
解决方案
您可以使用itertools.groupby
:
from itertools import groupby
my_list = ['a', 'f', '£', '3', '2', 'L', 'k', '3']
out = []
for _, g in groupby(enumerate(my_list, 2), lambda k: True if k[1].isdigit() else k[0]):
out.append(''.join(val for _, val in g))
print(out)
印刷:
['a', 'f', '£', '32', 'L', 'k', '3']
推荐阅读
- typescript - 如何使用 Observable 和 turf.js 构建多边形?
- amazon-web-services - ECS,哪个守护进程或副本更用于Web服务?
- c# - 按钮单击 xamarin android 上的未处理异常
- javascript - react-native中具有渐变效果的简单水平线?
- jenkins - 如何使用 SVN post-commit hook trigger jenkins build?
- javascript - 在reactjs的onChange字段中访问时输入字段目标为空
- python - 从包含 Json 的数据库导出中选择特定字段
- solr - 优化 SOLR 中更多单词的搜索结果
- image-charts - 锐化 [image-charts] 中的图表
- python - 如何使用正则表达式解析 HTML 中的数据?