从python列表中提取一系列数据

时间:2013-10-22 14:42:25

标签: python list

我有一个unicode值列表。据我所知,我可以使用列表[起始位置:长度来选择]从列表中选择一系列值,对吗?

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

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

3 个答案:

答案 0 :(得分:9)

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

另请尽量不要使用list作为列表名称。它会覆盖list()

答案 1 :(得分:4)

列表[起始:结尾] 列表[起始:长度]。

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

有关slice notation click here

的更多信息

答案 2 :(得分:1)

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

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

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