自己写了一下这个题目,练练手,先发出来,然后在学习各位鱼油的程序~~
我的程序如下def changelist(list1):
list2=[]
if len(list1)<1:
return list2
elif len(list1)==1:
a=list1[0]//2 if (list1[0]//2)%2==0 else list1[0]//2-1
b=list1[0]-a
list2.append((a,b))
return list2
for i in range(len(list1)):
if i==0:
a=list1[i]//2 if (list1[i]//2)%2==0 else list1[i]//2-1
b=list1[i]-a+list1[i+1]
list2.append((a,b))
elif i==len(list1)-2:
a=list1[i]//2+list1[i-1] if (list1[i]//2+list1[i-1])%2==0 else list1[i]//2+list1[i-1]-1
b=list1[i]-a+list1[i-1]+list1[i+1]
list2.append((a,b))
else:
a=list1[i]//2+list1[i-1] if (list1[i]//2+list1[i-1])%2==0 else list1[i]//2+list1[i-1]-1
b=list1[i]-a+list1[i-1]
list2.append((a,b))
return list2
print([],'转换为',changelist([]))
print([3],'转换为',changelist([3]))
print([5,8],'转换为',changelist([5,8]))
print([-3,6,-8],'转换为',changelist([-3,6,-8]))
程序结果[] 转换为 []
[3] 转换为 [(0, 3)]
[5, 8] 转换为 [(2, 11), (8, 5)]
[-3, 6, -8] 转换为 [(-2, 5), (0, -5), (2, -4)]
|