Python 3.x 使用双精度'消除列表中的字符串元素;a';

Python 3.x 使用双精度'消除列表中的字符串元素;a';,python-3.x,for-loop,Python 3.x,For Loop,我一直在尝试创建一个程序,该程序将验证列表中的字符串或该列表的元素是否包含2个或更多的“a”,如果不包含,则应将该元素保存在新列表中。这是我目前的代码: ent = input("Ingresa un listado de palabras separados por coma: ") lst_1 = ent.split(",") lst_2 = [] def cuenta(lst_M): tmp = 0 for i in range (0,len(element)):

我一直在尝试创建一个程序,该程序将验证列表中的字符串或该列表的元素是否包含2个或更多的“a”,如果不包含,则应将该元素保存在新列表中。这是我目前的代码:

ent = input("Ingresa un listado de palabras separados por coma: ")
lst_1 = ent.split(",")
lst_2 = []

def cuenta(lst_M):
    tmp = 0
    for i in range (0,len(element)):
        print(lst_M[i])
        if lst_M[i] == 'a':
            tmp += 1
            print(tmp)
    return tmp    


for element in lst_1:
    lst_rev = [i for i in element]
    cuenta(lst_rev)
    print("Este es el valor de tmp:",tmp)
    if tmp <= 2:
        lst_2.append(element)
    print(lst_2)

print(lst_2)
正如您所看到的,我使用一个函数来计算元素内部的“a”数,但由于某些原因,函数外部的变量tmp始终为0。
我做错了什么?

尝试将函数调用的结果赋给变量。当前,您正在调用返回值的函数,但您没有“捕获”函数调用范围之外的返回值

tmp = cuenta(lst_rev)
print("Este es el valor de tmp:",tmp)

您需要将
cuenta
方法的返回值存储在
for
循环中:
tmp=cuenta(lst_rev)
。然后检查返回值。它完全起作用了,你可以把它作为回答,这样我就可以接受你的答案了!
tmp = cuenta(lst_rev)
print("Este es el valor de tmp:",tmp)