列表的切片
语法:列表[:]、列表[::] 综合:列表[(开始索引b):(结束索引e)(:(步长s))]
返回:列表的切片取值时,返回一个列表,规则等同于字符串切片规则。
说明:
- 开始索引是切片切下的位置,0代表第一个元素,1代表第二个元素,-1代表最后一个元素。
- 结束索引是切片的终止索引(但不包含终止点)。
- 步长是切片每次获取完当前元素后移动的方向和偏移量。没有步长,相当于取值完毕后右移动一个索引的位置(默认为1)。当步长为正整数时,取正向切片。当步长为负整数时,取反向切片。
- 反向切片时,默认的起始位置为最后一个元素,终止位置是第一个元素的前一个位置。
- 切记,列表切片返回的是一个新的列表。如果操作新列表,比如增加或删除元素,原来的列表不受影响。
arr = ['A', 'B', 'C', 'D']; print(arr[0:3]); # ['A', 'B', 'C'] print(arr[1:4]); # ['B', 'C', 'D'] print(arr[:2]); # ['A', 'B'] print(arr[2:]); # ['C', 'D'] print(arr[:-2]); # ['A', 'B'] print(arr[-2:]); # ['C', 'D'] print(arr[-2::-1]); # ['C', 'B', 'A']
判断一个对象是否为列表,可以使用isinstance方法
arry = [1, 2, 3] print(isinstance(arry, list)) # 如果是列表,返回True,否则返回False print("{0} is {1}".format(arry, isinstance(arry, list)))
列表转字符串
arr = ['15', '20', '30'] sss = ','.join(arr) print sss # "15,20,30" sql = ','.join(["'%s'" % item for item in arr]) print sql # "'15','20','30'" sql = 'select * from tb_user where ip in (%s)' % ','.join(['%s'] * len(arr)) print sql # select * from tb_user where ip in (%s,%s,%s)