|
发表于 2018-12-29 17:01:14
|
显示全部楼层
自己写了一下这个题目,练练手,先发出来,然后在学习各位鱼油的程序~~
我的程序如下
- 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)]
复制代码 |
|