【问题标题】:Counting number of different characters in a word计算单词中不同字符的数量
【发布时间】:2015-04-20 19:29:46
【问题描述】:

我正在想一个程序来计算 Python 中一个单词中不同字符的数量。

例如:

  • 给定输入:

    ('Banana') 
    
  • 预期输出:

    3
    

如何使用whilefor 循环来执行此操作?

谢谢

【问题讨论】:

  • 你自己有没有尝试过?
  • 你不需要循环。看set
  • 使用循环似乎很痛苦。你可以随时len(set('banana'))
  • imo,您最好完全自己弄清楚如何做到这一点。阅读 Python 中的字符串、集合和循环,然后学习!如果这里有人告诉你该怎么做,你就会错失挑战自我的宝贵机会。除非当然有紧急情况:)
  • @Totem - 你自己尝试这个的建议是有效的,老实说,我试图想出代码来破解我的头

标签: python for-loop while-loop counting


【解决方案1】:

不需要循环。您可以使用 set 查找字符串中的唯一字符

len(set('Banana'))

这将输出3。如果您想查看哪些字符是唯一的,请删除 len 包装器:

set('Banana')

输出:

set(['a', 'B', 'n'])

注意: Bb 是唯一的。如果你有像Baby 这样的词,你会得到这个:

set(['a', 'y', 'B', 'b'])

为防止这种情况,请将您的字符串转换为全部大写或全部小写:

set('Baby'.lower())

输出:

set(['a', 'y', 'b'])

【讨论】:

  • 感谢您的详细解释:)
【解决方案2】:
>>> len(set('Banana'))
3

【讨论】:

  • 打印 len(set('Banana'))
  • @MostafaNorzade 我不确定我是否理解。
【解决方案3】:

注意:对于未来的读者,此解决方案仅被接受,因为 OP 仅限于使用循环。 @Andy's 解决方案使用 Python 的 set() 函数提供了更好的替代方案。

使用 for 循环:

word='Banana'

L=[]                           #create an empty list
for letter in word:
    if letter not in L:
        L.append(letter)       #append unique chars to list

print len(L)                   #count the chars in list

【讨论】:

  • 正是我需要的,谢谢:)
  • 我认为我们应该避免这种快速而琐碎的答案,只是为了获得一些代表(我过去做过)。如果你删除它,你会做一个很好的举动:删除噪音并显示具有一些有价值内容的独特答案。
  • @Micheled'Amico 如果我只是编辑我的帖子以指向更好的答案可以吗?在我的辩护中,这就是 OP 想要的。
  • 是的,指出正确答案在您的顶部就足够了。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多