【问题标题】:Python: Case Sensitive CounterPython:区分大小写的计数器
【发布时间】:2019-01-09 17:37:12
【问题描述】:

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

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

如果有人能就如何分别计算不同的大小写字母提供帮助,我将不胜感激。

谢谢

【问题讨论】:

  • “但是,它需要将大写和小写视为不同的实体”——确实如此,不是吗?
  • 您在暗示 Counter 故意使值不区分大小写。那会很奇怪。
  • 换成print(Counter('moOse'))看看!

标签: python


【解决方案1】:

无法复制您的问题 - 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 2022-08-14
    • 2012-12-01
    • 2013-03-06
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多