如果字符串以某个字符开头并且在字符串中重复,则我尝试将计数增加一个。这是我的代码
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/