【问题标题】:using for loop to count list elements in a string使用 for 循环计算字符串中的列表元素
【发布时间】:2020-01-28 22:19:16
【问题描述】:

我是 python 初学者,为了生物学目的而学习它。

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

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

所以当使用上面的函数来查找我的字符串中有多少个A和C时

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

似乎该函数仅返回字符串中 C 的计数为 1,这是我想要获取两个元素的计数。看来在循环体里面加个打印线就可以解决问题了,

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

有没有办法在不使用 print 语句的情况下获得相同的输出?

提前致谢

【问题讨论】:

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


    【解决方案1】:

    将结果作为列表返回。

    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
    

    【讨论】:

    • 感谢您的回答,如果我希望它以更详细的方式为我提供输出,例如获得类似“A 计数为 2,C 计数为 1”的输出,该怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2013-03-10
    • 2022-11-24
    • 2022-01-03
    • 1970-01-01
    • 2021-04-02
    • 2017-04-20
    相关资源
    最近更新 更多