您的位置:首页 > 编程语言 > Python开发

计蒜客 交叉排序-Python中的排序与元组

2017-11-09 00:54 597 查看
输入一行 k 个用空格分隔开的整数,依次为 n1, n2 … nk。请将所有下标不能被 3 但可以被 2 整除的数在这些数字原有的位置上进行升序排列,此外,将余下下标能被 3 整除的数在这些数字原有的位置上进行降序排列。

输出包括一行,与输入相对应的若干个整数,为排序后的结果,整数之间用空格分隔。

样例1

输入:

1 5 4 3 10 7 19

输出:

1 3 7 5 10 4 19

代码块

t_=input().split(' ')

t1 = []
t2=[]
t = [ int(x) for x in t_ ]
for i in range(len(t_)):
if(i+1)%3!=0 and (i+1)%2==0:
t1.append(t[i])
elif(i+1)%3==0:
t2.append(t[i])
t1.sort()
t2.sort(reverse=True)

p,q=0,0
for i in range(len(t)):
if (i+1)%3 != 0 and (i+1)%2 == 0:
del t[i]
t.insert(i,str(t1[p]))
p += 1
elif (i+1)%3 == 0:
del t[i]
t.insert(i,str(t2[q]))
q += 1
t = [ str(x) for x in t ]
print(' '.join(t))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 排序