在Python
我试图找到字符的单词列表总数,特别是这个名单:在Python
words = ["alpha","omega","up","down","over","under","purple","red","blue","green"]
我试着这样做:
print "The size of the words in words[] is %d." % len(words)
但只是告诉我有多少话是在列表中,这是10
任何帮助,将不胜感激!
对不起,我打算提到我正在做这个的类是for循环的主题,所以我想知道如果我必须实现一个forloop给我一个答案,这就是为什么for循环标签在那里。
您可以在列表解析中使用len
功能,这将只是sum
使用生成器表达式
>>> sum(len(i) for i in words)
43
创建长度
>>> words = ["alpha","omega","up","down","over","under","purple","red","blue","green"]
>>> [len(i) for i in words]
[5, 5, 2, 4, 4, 5, 6, 3, 4, 5]
然后列表如果你真的有你的心脏集在for
环路上。
total = 0
for word in words:
total += len(word)
>>> print total
43
只需跳过列表理解并使用gen expr:'sum(len(i)for i in words)'或者只是'sum(imap(len,words))' – acushner 2014-09-19 13:12:59
@acushner表达式必须完全评估为无论如何传递给'sum' – jonrsharpe 2014-09-19 13:14:24
这是不正确的。总和需要一个迭代。如果你做了列表理解,首先,整个列表被创建,然后迭代遍历整个列表。如果你做gen expr,那么每个元素都是即时生成的。 – acushner 2014-09-19 13:17:14
为什么标记为[loops]和[for-loop]?你还没有使用循环。 – geoffspear 2014-09-19 13:04:54
对不起,我想说的是我正在做的这个类是关于循环的主题,所以我想知道是否必须实现一个forloop来给我一个答案。 – 2014-09-19 13:13:05
@RyanRoss'for'循环是一种方法,你可以使用很多方法。通常,对于任何实现,您都试图平衡时间复杂性,空间(内存)复杂性和可读性等。 – CoryKramer 2014-09-19 13:16:30