2016-11-13 117 views
1

编写一个函数countletter(),该函数应该有一个'for'循环,通过下面的列表步骤 ,并打印城市的名称和城市名称中的 字母数。您可以使用len()函数。循环的Python代码计数字母

citylist = ["Kentucky","New York","LA", "Toronto", 
"Boston","District of Columbia"] 

我在Spyder中使用Python 3.5。我无法从列表中提取字母,然后让它们在for循环中打印出来。

我有什么:

def countletter(citylist):  
    city = len(citylist)  
    ct = 0 
    for i in citylist: 
     city = (ne[i]) 

,然后我会被卡住。我担心这可能是完全错误的。我也在如何打印这个问题上苦苦挣扎。

产品应该是:

肯塔基有8个字母。

纽约州有12个字母。

LA有2个字符。

Toronto有7封信件。

Boston有6封信件。

哥伦比亚特区有20个字母。

谢谢你的帮助!

回答

1

您不需要使用索引。只需迭代citylist; for循环将产生每个城市。

def countletter(citylist): 
    for city in citylist: 
     n = len(city) 
     print(city, 'has', n, 'letters.') 


citylist = ["Kentucky","New York","LA", "Toronto", "Boston","District of Columbia"] 
countletter(citylist) 

输出:

Kentucky has 8 letters. 
New York has 8 letters. 
LA has 2 letters. 
Toronto has 7 letters. 
Boston has 6 letters. 
District of Columbia has 20 letters. 
+0

谢谢你的帮助。我不知道我可以从列表中提取元素并使用len()。谢谢! –

+0

你能帮我解决另一个问题吗?它在我的个人资料页面上!我非常感谢帮助! –

0
def countletter(citylist):  
    for index,city in enumerate(citylist): 
     print (index,' : ',city," has ";len(city);" letters". 

应该给:

1:肯塔基州有8个字母。
2:纽约有8个字母。 ...

+0

太谢谢你了! –