切片是python语言中有关列表的一个常用操作,切片的对象是列表,这点是在使用中有可能被忽略的地方。
比如如下代码
number_list = range(1, 11)
for each_number in number_list:
print(each_number)
会打印从1到10共10个数字。如果我们想仅仅打印前面3个数字,使用切片的方式,可能会写出如下代码:
number_list = range(1, 11)
for each_number in number_list:
print(each_number)
first_sublist = number_list[:3]
print(f"The first three items in the list are: {first_sublist}")
这段代码输出的结果,除了数字1到10之外,还有
The first three items in the list are: range(1, 4)
这显然不是我们期望的内容,我们期望的内容应该是将 1 2 3打印出来。
这里出现与预期不一致的原因在于,number_list的类型为rangge,并不是list
number_list = range(1, 11)
print(type(number_list))
这里的输出结果为:
<class 'range'>
想要达到预期效果,就需要将range转换为list ,比如
number_list = range(1, 11)
new_list = list(number_list)
first_sublist = new_list[:3]
print(f"The first three items in the list are: {first_sublist}")