Python Count函数只计算列表的最后一行

Python Count函数只计算列表的最后一行,python,python-2.7,Python,Python 2.7,Count函数只计算列表的最后一行 N = int(raw_input()) cnt = [] for i in range(N): string = raw_input() for j in range(1,len(string)): if string[j] =='K': cnt.append('R') elif string[j] =='R': cnt.append('R') if string[0] == 'k': cn

Count函数只计算列表的最后一行

N = int(raw_input())
cnt = []
for i in range(N):
    string = raw_input()
for j in range(1,len(string)):  
    if string[j] =='K':
        cnt.append('R')
    elif string[j] =='R':
        cnt.append('R')
if string[0] == 'k':
    cnt.append('k')
elif string[0] == 'R':
    cnt.append('R')
print cnt.count('R')
如果我提供输入:-

2
RKKRK
RKKR`
这只是最后一行的答案
关于RKKR,我不知道你到底想实现什么,但是如果你想计算字符串中的R和K,有更优雅的方法来实现它。但为了供你参考,我修改了你的代码

N = int(raw_input())
s = []
for i in range(N):
    s.append(raw_input())
for string in s:
    cnt = []
    for j in range(1,len(string)):
        if string[j] =='K':
            cnt.append('R')
        elif string[j] =='R':
            cnt.append('R')
    if string[0] == 'k':
        cnt.append('k')
    elif string[0] == 'R':
        cnt.append('R')
    print cnt.count('R')
每次获得原始输入时,您都会过度编写字符串,但在这里,我只是将每个输入附加到一个列表中,然后逐个处理

仅供参考-以下代码将更好地完成这项工作

N = int(raw_input())
s = []
for i in range(N):
    s.append(raw_input())
for string in s:
    print len(filter(lambda x: x in ("R","K"), string))

仔细观察你的压痕;您认为范围(N)中的
循环在哪里结束?字符串变量被RKKKR重写,第一个输入RKKKRK丢失,因此字符串只包含RKKKKYES u是正确的,但我如何解决它制作一个字符串列表我认为cnt正在存储字符串list@akshaysingh如果这个答案帮助你考虑接受它