我的程序无法过滤字符串列表

时间:2014-03-08 19:19:46

标签: python python-3.x

请记住,我仍然是Python的新手。我有这个问题,我在理解方面遇到了一些麻烦。我试图解决这个问题:

def Sample(A):
    for i in range(len(A)):
        if A == 1:
        print A
    elif A == (-1):
        print A

问题:

  

编写一个函数,其中A是一个字符串列表,这样打印A中以'-1''1'开头的所有字符串

3 个答案:

答案 0 :(得分:4)

在您正在测试的ifelif A中,即整个列表是否等于该值,该值永远不会是{{1} }}。而是在True中测试每个。你可以坚持你的索引:

A

或更好地直接迭代for i in range(len(A)): if A[i] == ...

A

接下来,要测试字符串是否以字符开头,请使用str.startswith

for item in A:
    if item == ...

请注意,这使用字符串for item in A: if item.startswith("1"): ... ,而不是整数"1"

答案 1 :(得分:0)

您要比较A等于1还是-1,这是一个糟糕的开始。您应该检查 i 是否以其中任何一个开头。

if i.startwith("1"):

修改 我完全编辑了我的答案,因为我第一次误解了这个问题。

答案 2 :(得分:0)

你需要测试两种情况,A中的a_string以'1'开头或以-1开头。

Python提供了许多方法来实现这一目标。首先,是string.startswith('something')方法。这将检查字符串是否以您指定的内容开头。

def Sample(A):
    for each_string in A:
        if each_string.startswith(('1','-1')):
            print each_string