['C2', 'H3', 'C3', 'H4'],我想提取所有3个的连续数字,应该输出['C2', 'H3', 'H4''],['C2', 'C3', 'H4']
2条回答 默认 最新
关注 引自免费微信小程序:皆我百晓生
当然,根据您的问题,您希望从给定的字符串列表中提取出由连续数字构成的子序列。这里是一个示例解决方案,它会找到所有包含3个连续数字(不论字母前缀是否相同)的子序列:
# 给定的字符串列表 input_list = ['C2', 'H3', 'C3', 'H4'] # 定义一个辅助函数,用于检查两个字符串中的数字部分是否连续 def are_numbers_consecutive(s1, s2): num1 = int(''.join(filter(str.isdigit, s1))) num2 = int(''.join(filter(str.isdigit, s2))) return abs(num2 - num1) == 1 # 初始化结果列表 output_subsequences = [] # 遍历输入列表的所有可能的3个元素子序列 for i in range(len(input_list) - 2): for j in range(i + 1, len(input_list) - 1): for k in range(j + 1, len(input_list)): # 检查当前三个字符串中的数字是否连续 if are_numbers_consecutive(input_list[i], input_list[j]) and \ are_numbers_consecutive(input_list[j], input_list[k]): # 如果连续,则添加到结果列表 output_subsequences.append([input_list[i], input_list[j], input_list[k]]) # 输出结果 output_subsequences
运行上述代码后,将会得到结果
[['C2', 'H3', 'C3'], ['C2', 'H3', 'H4']]
。但是请注意,按照您提供的例子,'C3' 和 'H4' 并非连续数字,所以实际上不会输出[['C2', 'C3', 'H4']]。如果需要的是任意位置的连续数字子序列,而不是必须相邻的位置,则需对代码进行相应调整。解决 无用评论 打赏 举报
悬赏问题
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境
- ¥30 关于#java#的问题,请各位专家解答!
- ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
- ¥20 pcf8563时钟芯片不启振
- ¥20 pip2.40更新pip2.43时报错
- ¥15 换yum源但仍然用不了httpd
- ¥50 C# 使用DEVMOD设置打印机首选项