【问题标题】:Python: Counting Repeating Character LoopsPython:计算重复字符循环
【发布时间】:2017-03-18 21:08:48
【问题描述】:

我在寻找重新启动用变量替换重复字符的字符计数器的最佳方法时遇到了问题。我的代码看起来像这样。

文件 = rf.read() ret = '' 对于 groupby(s) 中的 k,v: x = '0' 块 = 列表(v) cnt = len(块) 如果 k == x 和 cnt == 2: 埃尔='B' elif k == x 和 cnt == 3: 埃尔='C' 别的: el = ''.join(块) ret += el

因此,如果数字大于 3,我不希望计数器将 C 用于那些重复的字符,然后重新开始计数器。数字可能会变得相当大,因此使用余数函数是不可能的。有点寻找代码,它将用我拥有的最高数字替换它并像这样重新启动计数器。

Elif k == x 和 cnt >= 3: “为这 3 个字符打印 C,然后开始计数”

因此,如果 x 重复 12 次,则输出看起来像 CCCC,不确定找到重复字符并除以是否是最好的方法,因为如果它落在一个奇数上。

【问题讨论】:

  • 只是让您知道,Elif 不等于 elif
  • 不要让我们盯着你的代码来提取确切的规范。给我们一个明确的、具体的输入和预期输出的例子,以及导致输出的规则/规范。我知道你可以如何优雅地解决这个问题,但在你提供清晰的规格之前不会回答。

标签: python python-3.x loops logic counting


【解决方案1】:

如何使用字符串。count(x)
参考:Count occurrence of a character in a string

代码可能是:

el = ''
x = '0'
file = rf.read()
count = file.count(x) # count x in file
if count >= 3:
    for i in range(0, count, 3): # (start: 0, end: count, step: 3)
        if count- i >= 3: # this makes sure that for example if count = 13 then 4 C's are printed only
            el = el + 'C'
print el

【讨论】:

    猜你喜欢
    • 2013-05-30
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-11-28
    • 2018-11-23
    相关资源
    最近更新 更多