检查列表Python的元素

时间:2013-10-10 02:38:41

标签: python loops while-loop

places=["Jack", "John", "Sochi"]
place = places[0]
while places != "Sochi" and count < len(places):

    if ' ' in place:
        multi_word += 1

    count += 1
    place = places[count]

我基本上希望程序通过为列表中的每个元素添加一个来检查到索契的城市数量。然后当它到达索契时,它会停止向列表中添加1,然后当它到达索契时它什么都不做。该程序为列表的每个元素添加一个。然后它检查它们是否是列表中任何元素中的空格,如果是,则添加一个空格,但仅当列表中的该元素来自Sochi时。这个程序有什么问题? 这条线也做了什么.. {count&lt; LEN(地方)}

2 个答案:

答案 0 :(得分:1)

我看到的主要错误是您需要检查if place != "Sochi",而不是使用places。假设您初始化count=0,这将为您提供所需的输出:

places = ["Jack", "John", "Sochi"]
place  = places[count]
while place != "Sochi" and count < len(places):

    if ' ' in place:
        multi_word += 1

    count += 1
    place = places[count]

print 'Number of cities before Sochi:', count

条款count < len(places)确保您不会尝试超出列表长度的places中的访问索引,这将返回IndexError

答案 1 :(得分:-3)

places = ["Jack", "John", "Sochi"]
count=0
multi_word=0
place  = places[count]
while place != "Sochi" and count < len(places):
    if ' ' in place:
        multi_word += 1

    count += 1
    place = places[count]

print ('Number of cities before Sochi:', count)

这是固定代码