sticks = int(raw_input());
stickList= map(int,raw_input().split()) ;
stickList = sorted(stickList);
for i in xrange(0,len(stickList)):
stickList[i] = stickList[i]-stickList[0];
print stickList;
给定输入是:
6
5 4 4 2 2 8
为什么输出是这样的:[0,2,4,4,5,8] 而不是[0,0,2,2,3,6]
答案 0 :(得分:2)
这是因为您正在更改for循环中的源stickList
中的值。
在循环stickList[0]
中的第一次迭代后,对于剩余的迭代,将变为0
。
正如ShadowRanger所提到的反向列表一样,
stickList = map(int, "5 4 4 2 2 8".split())
stickList.sort()
for i in reversed(xrange(len(stickList))):
stickList[i] -= stickList[0]
print stickList