列表的切片
语法:列表[:]、列表[::] 综合:列表[(开始索引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)