如何简化Python中判断四位数字符串所有索引字符唯一的条件?
简化四位数字符串的字符唯一性校验条件
当然可以!你原来写的逐个字符比较的条件实在太啰嗦了,Python里有个超简洁的技巧能一次性完成这个校验——利用集合(set)的去重特性。
原理很简单:集合会自动剔除重复元素,所以如果四位字符串里的所有字符都不重复,把它转成集合后,长度肯定还是4;要是有重复字符,集合的长度就会小于4。
直接把你原来的条件替换成len(set(z)) == 4就行,修改后的代码如下:
y = int(input()) for i in range(1, 9000): z = str(y+i) if len(set(z)) == 4: # 这里是简化后的校验条件 print(z) break
对比你原来的代码,这个写法不仅简洁易读,还能避免逐个比较时可能出现的漏写、错写问题,而且这个方法其实不局限于四位字符串,任意长度的字符唯一性校验都能用,通用性很强。
内容的提问来源于stack exchange,提问作者slxshxr17
相关产品推荐
相关产品推荐

