feyafeya 2024-02-15 09:14 采纳率: 93.3%
浏览 3

连续数字的组合怎么取

['C2', 'H3', 'C3', 'H4'],我想提取所有3个的连续数字,应该输出['C2', 'H3', 'H4''],['C2', 'C3', 'H4']

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-15 09:15
    关注

    引自免费微信小程序:皆我百晓生

    当然,根据您的问题,您希望从给定的字符串列表中提取出由连续数字构成的子序列。这里是一个示例解决方案,它会找到所有包含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']]。如果需要的是任意位置的连续数字子序列,而不是必须相邻的位置,则需对代码进行相应调整。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月15日

悬赏问题

  • ¥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设置打印机首选项