如果字符串以某个字符开头并且在字符串中重复,则我尝试将计数增加一个。这是我的代码

def stringMatch(list1, char):
    count = 0
    for i in range(len(list1)):
        if char == list1[i][:]:
            count = count + 1
            print(list1[i], count)


对于输入list1 = ['cat', 'dog', 'corn']char = 'c'

输出应为

cat 1
corn 1

最佳答案

在代码中,使用if char == list1[i][:]。这会导致您的问题。

list1[i][:]list1[i]相同,这实际上不是您要尝试执行的操作。您不想查看list1[i]是否为char;相反,您想知道list1[i]是否包含char。您可以通过多种方式完成此任务。这是三个:


char in list1[i]
这个for循环:


found = False
for c in list1[i]:
    if c == char:
        found = True
        break



if any(char==c for c in list1[i])


无论如何,这就是我要做的:

def stringMatch(L, char):
    counts = (char in word for word in L)  # compute the counts of `char` in each list item
    for word, count in zip(L, counts):
        if not count: continue
        print(word, count)

关于python - 仅打印包含特定字符的列表项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32599481/

10-15 02:11