Python startswith()for loop和if语句

时间:2016-01-13 19:22:33

标签: python python-2.7 if-statement for-loop startswith

我想在数组列表中运行for循环并打印出任何包含“monkey”字样的内容。我在下面编写了以下代码,但它给了我一个错误。我不太确定我做错了什么。任何帮助都会很棒,谢谢。

a= "monkeybanana"
b= "monkeyape"
c= "apple"
list= [a, b, c]


print "The words that start with monkey are:"

for k in words:
    if list.startswith('monkey'):
        print list

3 个答案:

答案 0 :(得分:6)

您需要将其更改为

a= "monkeybanana"
b= "monkeyape"
c= "apple"
lst = [a, b, c]


print "The words that start with monkey are:"

for k in lst:
    if k.startswith('monkey'):
        print k

基本上你在words上进行迭代,但该名称不存在。

然后用

if list.startswith('monkey'):

代码检查以monkey开头的单词列表,而不是列表中的元素(k

最后

print list

打印整个列表,而不是它的当前元素

注意:使用filter

可将整个算法缩减为一行
print filter(lambda x: x.startswith('monkey'), lst)

注意2:避免使用名称python使用的命名变量。如果您使用list作为变量名称,它将隐藏内置list函数,您将无法使用它。

答案 1 :(得分:1)

您正在访问不同的数据。尝试:

a= "monkeybanana"
b= "monkeyape"
c= "apple"
list= [a, b, c]


print "The words that start with monkey are:"

for k in list:
    if k.startswith('monkey'):
        print k

答案 2 :(得分:0)

Python打印出错误,你一定要检查一下!

您要做的是检查列表中的每个字,看看它是否有“猴子”字样。内。 你写的(种类)转换为:对于列表中的每个单词,检查列表以查看它是否以' monkey'开头。

当然,如果你想打印出有“猴子”字样的单词。在其中,您必须在您的方案中打印单词{print k,因为这是您目前正在通过列表的单词),而不是列表本身。

快速回答:

如果你想看看' monkey'在列表中一句话(如问题所示):

a = "monkeybanana"
b = "monkeyape"
c = "apple"
list = [a, b, c]


print "The words that start with monkey are:"

for k in list:
    if 'monkey' in k:
        print k

如果你想看看' monkey'是在列表中的一个单词的开头(如标题和代码所示):

a = "monkeybanana"
b = "monkeyape"
c = "apple"
list = [a, b, c]


print "The words that start with monkey are:"

for k in list:
    if k.startswith('monkey'):
        print k