检测列表的元素是否是多字

时间:2013-10-09 04:29:24

标签: python

这段代码可以工作,但我不是100%肯定它是如何工作的,因为它是我借来的Python书。我不明白程序如何检查是否有多字。此外,加星标的含义是什么意思

places= ["Home","In-n Out Burger", "John's house", "Santa Monica Pier", "Staples center",  "LA Dodgers stadium", "Home"]
def placesCount(places):
    multi_word = 0
    count = 0
    **while True:
        place = places[count]**
        if place == 'LA Dodgers stadium':
            break
        **if ' ' in place:**
            multi_word += 1
        count += 1
    return count + 1, multi_word + 1

placesCount(places)

1 个答案:

答案 0 :(得分:1)

该方法检查列表places中的字符串是否有空格,它认为是多字。

如果列表places包含字符串LA Dodgers stadium,则该方法将返回字符串的位置,以及在其之前找到多个单词的计数。

这里有一个提示:当你将['LA Dodgers stadium']传递给函数时会发生什么?它会返回正确的数字吗?

def placesCount(places):
    multi_word = 0 # a count of how many multiple words were found
    count = 0 # an initializer (not needed in Python)
    while True: # start a while loop
        place = places[count] # get the object from the places list
                              # at position count
        if place == 'LA Dodgers stadium':
            # quit the loop if the current place equals 'LA Dodgers stadium' 
            break
        if ' ' in place:
            # If the current string from the places list
            # (which is stored pointed to by the name place)
            # contains a space, add one to the value of multi_word
            multi_word += 1
        # Add one to count, so the loop will pick the next object from the list
        count += 1
    # return a tuple, the first is how many words in the list
    # and the second item is how many multiple words (words with spaces)
    return count + 1, multi_word + 1