You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将句子拆分为单个元素存入列表并实现索引访问?

修正你的列表拆分代码

我来帮你排查下代码里的问题,你想要的是把句子拆成单个单词的列表,现在的问题出在你把split返回的列表又嵌套了一层,导致最终的words是个嵌套列表,自然没法直接用words[2]访问第三个单词。

问题分析

当你输入"one two three"时,sentence.split(" ")已经直接返回了一个列表:["one", "two", "three"]。但你接下来写了:

words.extend([sentence.split(" ")])

这里你把这个列表又放进了另一个列表里(也就是[["one", "two", "three"]]),extend方法会把这个嵌套列表里的每个元素添加到words中——而这里嵌套列表里只有一个元素,就是那个单词列表,所以最终words变成了[["one", "two", "three"]],这时候你得用words[0][2]才能访问到第三个单词,显然不是你想要的效果。

修正方案

其实解决方法很简单,有两种常用方式:

方式1:直接赋值(最简洁)

split方法本身就返回拆分后的单词列表,直接把它赋值给words就行:

sentence = input('Please type a sentence:')
words = sentence.split()  # 这里不用写" ",split()默认按任意空白分割(包括多个空格、制表符),更鲁棒
print(words)

测试输入"one two three",输出就是['one', 'two', 'three'],这时候words[2]就能拿到'three'了。

方式2:使用extend(如果需要往已有列表里追加)

如果你已经有一个非空的words列表,想要把拆分后的单词加进去,直接把split的结果传给extend就行,不用额外套列表:

sentence = input('Please type a sentence:')
words = []
words.extend(sentence.split())  # 直接传split返回的列表
print(words)

这样也能得到正确的扁平列表。

额外小提示

用split()(不带参数)比split(" ")更好,因为如果输入里有多个连续空格(比如"one two three"),split(" ")会返回['one', '', 'two', '', '', 'three'](包含空字符串),而split()会自动忽略多余空白,返回干净的['one', 'two', 'three']。

内容的提问来源于stack exchange,提问作者Moose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:05:07