Python:区分大小写的计数器

时间:2019-01-09 07:52:09

标签: python

我正在制作一个小脚本,该脚本需要使用任何字符串作为参数,并确定是否存在重复项(字母或数字)。但是,它需要将大写和小写字母视为不同的实体。到目前为止,我得到的是:

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”,它将不起作用

如果有人可以帮助您区分不同的大小写字母,我将不胜感激。

谢谢

1 个答案:

答案 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