我正在制作一个小脚本,该脚本需要使用任何字符串作为参数,并确定是否存在重复项(字母或数字)。但是,它需要将大写和小写字母视为不同的实体。到目前为止,我得到的是:
import collections
string = str(input('Enter Sequence: '))
x = list(string)
a = [item for item, count in collections.Counter(x).items() if count > 1]
if len(a) == 0:
return True
else:
return False
只有在没有相同字母的大写和小写实例的情况下,才能产生正确的结果,因此如果我输入“ moOse”,它将不起作用
如果有人可以帮助您区分不同的大小写字母,我将不胜感激。
谢谢
答案 0 :(得分:4)
无法复制您的问题-Counter
区分大小写。
演示:
import collections
for s in ["aa","aAbBcC"]:
x = list(s)
a = [item for item, count in collections.Counter(x).items() if count > 1]
if len(a) == 0:
print(x, "has no dupes")
else:
print(x, "has dupes:", a)
输出:
['a', 'a'] has dupes: ['a']
['a', 'A', 'b', 'B', 'c', 'C'] has no dupes
无需使用/导入Counter
来测试您是否只有唯一元素。将len(set(data))
与len(data)
进行比较:
def is_unique(d):
return len(set(d)) == len(d)
for d in ["qwertzui4567QWERTZUI","AA"]:
print(f"{d} :" ,'is Unique' if is_unique(d) else 'has Duplicates')
输出:
qwertzui4567QWERTZUI : is Unique
AA : has Duplicates