使用double' a'消除列表中的字符串元素。

时间:2017-10-18 23:56:35

标签: 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)):
        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)

输出看起来像这样:

Ingresa un listado de palabras separados por coma: ana,another,person,ana
a
1
n
a
2
Este es el valor de tmp: 0
['ana']
a
1
n
o
t
h
e
r
Este es el valor de tmp: 0
['ana', 'another']
p
e
r
s
o
n
Este es el valor de tmp: 0
['ana', 'another', 'person']
a
1
n
a
2
Este es el valor de tmp: 0
['ana', 'another', 'person', 'ana']
['ana', 'another', 'person', 'ana']

正如您所看到的,我使用一个函数来计算&#39; a&#39;在元素内部,但由于某种原因,函数外部的变量tmp始终为0。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试将函数调用的结果赋给变量。目前,您正在调用返回值的函数,但您并未捕获&#34;捕获&#34;函数调用范围之外的返回值。

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