我正在嘗試將字串轉換為單詞串列,然后轉換為單詞長度串列。例如:
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()
我無法弄清楚生成器物件在哪里,以及為什么它與串列理解不兼容。任何提示/建議表示贊賞,謝謝。
uj5u.com熱心網友回復:
您可以通過迭代串列的元素而不是索引來簡化運算式:
myNums = [len(w) for w in myString]
print(myNums)
# Output
[4, 2, 1, 4, 6, 4, 4, 5, 2, 2]
您還可以使用函式式編程:
myNums = list(map(len, myString))
print(myNums)
# Output:
[4, 2, 1, 4, 6, 4, 4, 5, 2, 2]
uj5u.com熱心網友回復:
你有一個錯位的右括號:
myNums = [len(myString[i] for i in range(len(myString)))]
^ |
|___should go there___________|
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/396513.html
