我正在按顺序数数字母/输入
总而言之,我想要一个简单的系统,在这里我可以输入“L,L,L,R,L,R,L,a,a”(我知道这可能是可以识别的),但我希望它能输出
4 Ls, 1 R, 1 L, 1 R, 1 L, 2 As
我现在的代码是这样的
def countTheL(word, char='.L,'):
count = 0
for c in word:
if c == char:
count += 1
return count
(我有Rs、As和Fs的相同代码)所有这些只是检查有多少。它没有按顺序告诉你
我还有另一个问题,如果这封信有一个句号,那么它将被作废和删除,但这可以在以后解决
这应该起作用:
我们不需要为每个字母都使用函数,只需要使用一个函数,它将一次一个字母地遍历字符串,并检查它是否与前一个字母相同
如果是同一个字母,我们将临时计数器增加1。 如果没有,则重置计数器,并将计数器值与字母一起存储在临时数组中
在函数结束时,它将使用临时数组并通过它进行解析,以连续输出每个字母在字符串中的次数
您可以使用我编写的代码:
这是这段代码的输出:
编辑:我修改了代码,以便能够处理字符串长度为1或2的情况
您可以使用
itertools
模块提供的功能(尽管一开始自己尝试也很好):我还加了以句号结尾的字母,所以它很有代表性
groupby
创建iterable元素的组,并将它们作为key, group object
对返回给您key
是您的列表元素,因此带句号的字母将被单独处理(它们的显示方式与裸字母不同)。这在if
语句中使用-如果字母以句号结尾,代码将跳过它。更好的说法是,如果不这样做,那么它将继续-并附加一个字符串,该字符串是组的大小和键字母这是一个版本,如果一个组中有多个字母,也会添加一个
s
相关问题 更多 >
编程相关推荐