列表的反转、插值
记录一些小操作,为了之后使用起来更加得心应手。反转和插值都比较简单,直接使用函数即可。但是我们可能会遇到一些要求,如按k个一组反转,隔位插入等。
1.列表之间两两反转
如[1,2,3,4,5]反转后[2,1,4,3,5]。
def myreverse1(li):
for i in range(0,len(li)-1,2):
li[i], li[i+1] = li[i+1], li[i]
return li
2.列表按K个一组反转
按K个一组反转,不足的不动。如[1,2,3,4,5,6,7],k=3,反转后[3,2,1,6,5,4,7]。需要按K个一组切片反转。
def myreverse2(li, k):
for i in range(0,len(li),k):
li[i:i+k] = li[i:i+k][::-1]
return li
3.隔位插入
如[1,2,3,4]隔位插入为[0,1,0,2,0,3,0,4]。
def myinsert(li):
for i in range(0, len(li)*2, 2):
li.insert(i,0)
#print(li)
return li
插入长度应为len(li)*2,因为在插入的过程中其不断增加长度,具体过程如下:
[0, 1, 2, 3, 4]
[0, 1, 0, 2, 3, 4]
[0, 1, 0, 2, 0, 3, 4]
[0, 1, 0, 2, 0, 3, 0, 4]