使用for循环对字符串中的列表元素进行计数

时间:2019-09-29 09:38:02

标签: python-3.x for-loop user-defined-functions

我是python的初学者,出于生物学目的学习它。

好吧,假设我想编写一个函数,该函数将遍历列表以使用for循环计算字符串中多少个元素

$(window).on("scroll touchmove", function() {
            if ($(document).scrollTop() >= $("#one").position().top && $(document).scrollTop() < $("#two").position().top) {
                $('.image').css('background-image', 'url(https://i.postimg.cc/FRxNp6yG/hr-ax.png)')
            };
            if ($(document).scrollTop() >= $("#two").position().top && $(document).scrollTop() < $("#three").position().top) {
                $('.image').css('background-image', 'url(https://i.postimg.cc/wvz9hzm7/hr-bx.png)')
            };
            if ($(document).scrollTop() >= $("#three").position().top && $(document).scrollTop() < $("#four").position().top) {
                $('.image').css('background-image', 'url(https://i.postimg.cc/FRxNp6yG/hr-ax.png)')
            };
            if ($(document).scrollTop() >= $("#four").position().top) {
                $('.image').css('background-image', 'url(https://i.postimg.cc/wvz9hzm7/hr-bx.png)')
            };
        });

因此,当使用上述函数查找我的字符串中有多少A和C时

def counting(string,lista):
    for element in lista:
        element_count=string.count(element)
    return element_count

似乎该函数只返回1的字符串中C的计数,我想让两个元素都计数。似乎在循环体内添加了一条打印线将解决此问题,

print(counting('AABCDEF',['A','C']))

有没有一种方法可以在不使用print语句的情况下获得相同的输出?

预先感谢

1 个答案:

答案 0 :(得分:0)

将结果作为列表返回。

def counting(string,lista):
    temp = []
    for element in lista:
        temp.append(string.count(element))
    return temp

print(counting('AABCDEF',['A','C']))

结果是

[2, 1]

要打印一些详细信息,

def counting(string, lista):
    temp = []
    for element in lista:
        temp.append('{} count is {}'.format(element, string.count(element)))
    return ', '.join(temp)

print(counting('AABCDEF', ['A','C']))

然后

A count is 2, C count is 1