Python多列表取末尾元素末字符、判断唯一性及兼容空列表问题
实现代码
happy = True pile1 = ["vapor", "Tie"] pile2 = ["stone", "he"] pile3 = ["glass", "sto"] # 可自行添加测试场景:比如空列表 pile4 = []、末位元素为空字符串 pile5 = ["test", ""] piles = (pile1, pile2, pile3) # 提取字符,兼容空列表/空字符串场景 chars = [] for pile in piles: # 先校验列表非空、末位元素是字符串且非空,再提取字符避免索引报错 if pile and isinstance(pile[-1], str) and pile[-1]: chars.append(pile[-1][-1]) # 若空场景需要填充默认占位符,可补充else分支自定义赋值,例如:else: chars.append(None) print(chars) # 判断所有字符是否唯一 if len(set(chars)) == len(chars): happy = False
逻辑说明
- 空场景兼容:遍历每个列表时先做合法性校验,只有列表非空、末位元素是有效非空字符串时才做索引取值,完全避免索引越界报错。
- 唯一性判断:利用集合自动去重的特性,比较去重后的集合长度和原字符列表长度,若两者相等说明没有重复字符,此时将
happy赋值为False。
内容的提问来源于stack exchange,提问作者Sondre
相关产品推荐
相关产品推荐

