8

我有一个 unicode 值列表。据我所知,我可以使用 list[starting location:length to select] 从列表中选择一系列值,对吗?

我有 78 个 unicode 值的列表,它们并不都是唯一的。当我从列表中的 0 位置开始选择 5 个值的范围时(例如:list[0:5]),将返回正确的值。但是,当我尝试选择不在列表中从 0 位置开始的值范围时(例如:list[44:5]),则返回为 []。更改范围的长度似乎没有任何区别。此外,例如,如果我使用 list[44],则返回的值是正确的。

我不明白为什么当光标不位于 0 时无法从列表中进行选择。谁能告诉我 python 中的列表是否对如何将数据作为范围检索有限制?我希望我的问题和疑问足够清楚。我将不胜感激任何反馈。谢谢。

4

3 回答 3

21

你应该做list[44:49]而不是list[44:5]. 通常,当您想在(包括)第 a+1 个项目之后获取 5 个项目时,您会执行L[a, a+5]. “通常”意味着有更灵活的方法可以做到这一点:请参阅扩展切片:http ://docs.python.org/release/2.3/whatsnew/section-slices.html 。

也尽量不要list用作您的列表名称。它覆盖list().

于 2013-10-22T14:44:42.393 回答
6

它是 list[starting:ending]而不是list[starting:length]。

所以你应该做list[44:49]

有关切片符号的更多信息,请单击此处

于 2013-10-22T14:46:27.843 回答
3

在切片表示法[a:b]中,第二个值 ( b) 不是长度,而是一个上限。

要从44您开始获得五个元素,应该使用[44:49](49 = 44 + 5)

如果上限小于下限,则得到空序列。

于 2013-10-22T14:46:59.693 回答