这是我的密码。我希望句子中每个单词的长度都被分配到列表中“作为整数”(不是字符串),但得到的错误与主题中的一样。求求你,救命
original_str = "The quick brown rhino jumped over the extremely lazy fox"
i = 0
num_words_list = []
original_strSplit = original_str.split(" ")
for each in original_strSplit:
num_words_list[i:] = len(each)
i += 1
print(num_words_list)
所讨论的行是
num_words_list[i:] = len(each)
问题是,你想在这条线上做什么
如果您试图将新元素添加到列表的末尾,那么可能需要使用Python的
append
函数,它正是这样做的例如,
num_words_list.append(...)
会将值附加到列表的末尾,以代替...
如果您试图替换列表中的现有元素,那么您的代码行几乎是正确的,但不应包含冒号。相反,它应该这样读:
num_words_list[i] = ...
。但是,在您的情况下,这将不起作用,因为您的列表没有任何要替换的元素(毕竟它开始时是空的)在Python中,访问列表时可以在括号内使用冒号,但这样做只是创建列表的一部分或子列表。例如,如果您写入
num_words_list[3:8]
,那么它将通过在元素3之前和元素8之前剪切列表来对列表进行切片,从而从原始列表中生成一个新的较短列表,其中包含5个元素(元素3、4、5、6和7)。当然,只有当列表中已经有这么多元素时,这才有意义。可以选择省略切片的端点。如果省略第一个端点,则切片从列表的开头开始;如果省略第二个端点,则切片从列表的结尾结束。因此,您无意中创建了一个从元素i
之前扩展到列表末尾的切片。您还试图分配给该片,用另一个列表替换它,但是您用(len(each)
)替换它的值不是一个列表,导致您看到的TypeError
如果要向列表中添加项目,可以使用
append()
函数。我认为你试图用一种更复杂的方法来解决一个简单的问题。在代码中,在每个" "
处拆分一个字符串。这将有效地创建一个列表,其中包含original_str
中由" "
分隔的所有单词。然后迭代该列表。对于original_strSplit
(现在是一个列表)中的每个单词,使用append()
函数追加该单词的长度len(each)
。由于len()
函数返回一个integer
,您可以使用append(len(each))
将该值放入列表中输出:
[3, 5, 5, 5, 6, 4, 3, 9, 4, 3]
相关问题 更多 >
编程相关推荐