首页 > 编程 > Python > 正文

Python 中的range(),以及列表切片方法

2020-02-15 22:07:16
字体:
来源:转载
供稿:网友

range()函数配合循环一块使用很方便,今天来整理一下这个函数的主要用法,以及几个小例子

首先来看一下函数原型,非常简单:

range(start,end [,step]) 

或者连start都省略掉:

range(end)

其中,start表示开始点,end表示结束点,真正结束的位置是end的前一个值,step表示步长。

例如:

print(list(range(1,5)))#list函数是将range的值列表化,这时候的输出为 1,2,3,4 (没有5!即不包括最后一个end的值)print(list(range(1,5,2)))#输出结果是 [1, 3] ,步长为2,而且小于5

如果只传入一个参数:

print(list(range(5)))#输出结果是 [0, 1, 2, 3, 4] ,这时候默认从0开始

rang的这些使用,我们可以同列表的遍历结合起来,比如对一个列表进行遍历访问:

#首先我用一个range生成一个列表,其中包含0~9 10个元素list1 =list(range(10))# #使用range的方式进行遍历:for i in range(len(list1)):  print(list1[i])#当然这种情况我们一般都是直接使用 for value in list1 就可以了#如果使用切片,访问列表的一部分for i in range(int(len(list1)/2)):  print(list1[i])#这样我们就可以得到列表中前一半元素,其他部分同理

有的时候我们还会用到一个列表的逆序,使用range可以这样:

list1 =list(range(10))for i in range(len(list1)-1,0,-1):  print(list1[i])#注意这个地方开始的位置是len-1,因为我们使用的列表的下标,其实这里的使用与C语言是一致的,步长设置为-1#就相当于我们在for循环的 i--了

使用循环的方式,我们可以在每次循环中对数据进行一些操作,但是如果仅仅是得到这些数据,我们可以利用列表的切片slide来做,切片的方式非常灵活,例如比较简单的:

list1 =list(range(10))print(list1[:])# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print(list1[3:])# [3, 4, 5, 6, 7, 8, 9]print(list1[3:5])# [3, 4]print(list1[1:5:2])# [1, 3]

从这里我们可以看出切片的使用方式与range大同小异,都是三个参数,分别控制开始,结束以及步长,在range中我们可以使用 -1 ,那么同理,在切片中,同样如此,对于每一个列表项,不仅仅有一个正向的序号,还有一个反向的序号,最后一个元素可以使用list1[-1]来表示,倒数第二个元素就是list1[-2]….:

print(list1[1:-1])# 这里表示从第一个元素到最后一个元素

如果逆序输出的话:

print(list1[-1::-1])#或者简记为:print(list1[::-1])

接下来是我之前遇到的一个问题,如何在一个列表中保存A-Z或者Z-A?

list2 = []for i in range(ord('A'),ord('A')+26):  list2.append(chr(i))print(list2)list3 = [chr(ord('A')+x) for x in range(26)]print(list3)            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表