我想在数组列表中运行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
答案 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