如何校验多个列表最后一个元素对应字符串的末尾字符是否相同
Python 函数实现方案
核心实现逻辑
- 首先收集所有输入列表的最后一个元素的末尾字符
- 校验所有末尾字符是否全部一致,不一致直接抛出错误提示用户重试
- 按需求补充无符合条件时的输出逻辑
完整代码实现
pile1 = ["vapor", "Tie"] pile2 = ["stone", "he"] pile3 = ["glass", "sto"] # 此处可扩展为8个列表,逻辑通用 piles = (pile1, pile2, pile3) def lose(piles): # 提取所有列表末尾字符串的最后一个字符 tail_chars = [pile[-1][-1] for pile in piles] # 校验是否所有末尾字符完全一致,不一致抛出错误 if not all(char == tail_chars[0] for char in tail_chars): raise ValueError("各列表末尾字符未全部匹配,请重试") # 如需实现示例中「至少2个字符相同才符合要求」的判断,放开下方注释即可 # char_frequency = {} # for c in tail_chars: # char_frequency[c] = char_frequency.get(c, 0) + 1 # if max(char_frequency.values()) < 2: # print("Does not work") # 调用函数 lose(piles)
代码说明
- 代码兼容任意数量的输入列表,后续扩展到8个列表无需修改核心逻辑,只需要更新传入的
piles元组即可 - 运行你给出的示例数据时,三个列表的末尾字符为
e、e、o,未全部一致,会直接触发错误抛出,符合需求1的要求 - 注释部分的代码是适配你给出的示例场景的逻辑,如果不需要可以直接删除
内容的提问来源于stack exchange,提问作者Sondre
相关产品推荐
相关产品推荐

