我有一个unicode值列表。据我所知,我可以使用列表[起始位置:长度来选择]从列表中选择一系列值,对吗?
我有78个unicode值的列表,这些值并非都是唯一的。当我从列表中的0位置开始选择5个值的范围时(例如:list [0:5]),返回正确的值。但是,当我尝试选择一系列不从列表中的0位置开始的值时(例如:list [44:5]),则返回为[]。改变范围的长度似乎没有任何区别。此外,如果我使用list [44],那么返回的值是正确的。
我不明白为什么当光标不在0时我不能从列表中选择。有人能告诉我python中的列表是否有限制如何将数据作为范围检索?我希望我的问题和问题足够清楚。我将不胜感激任何反馈。感谢。
答案 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)
答案 2 :(得分:1)
在切片表示法[a:b]
中,第二个值(b
)不是长度,而是上限。
要从44
开始获取五个元素,您应该使用[44:49]
(49 = 44 + 5)
如果上限小于下限,则得到空序列。