【发布时间】:2021-12-27 16:31:58
【问题描述】:
我正在尝试将字符串转换为单词列表,然后转换为单词长度列表。例如:
myString = 'this is a test string with test words in it'
myString = myString.split(' ')
myNums = []
for i in range(len(myString)):
myNums.append(len(myString[i]))
print(myNums)
>>[4, 2, 1, 4, 6, 4, 4, 5, 2, 2]
我想我应该能够使用列表理解来做到这一点,例如:
myNums = [len(myString[i] for i in range(len(myString)))]
但是当我这样做时,我会得到TypeError: object of type 'generator' has no len()
我不知道生成器对象在哪里,以及为什么它与列表理解不兼容。任何提示/建议表示赞赏,谢谢。
【问题讨论】:
-
你打错了:
len(myString[i]应该是len(myString[i]) -
最后的
)之一应该被删除。 -
不应该是 myNums = [len(myString[i]) for i in range(len(myString))] 吗?
-
为什么不只是
[len(s) for s in myString]? -
嗯,是的,谢谢facepalm