在不使用Python的内置Sort的情况下对元组进行排序

时间:2015-10-21 23:00:18

标签: python sorting tuples

我正在尝试合并这两个元组(t,n),因此它返回一个元组,它是t和n的排序组合。

找不到这个有什么问题:

def junta(t,n):
    a = ()
    b = () 
    minimo = t[0]  
    for x in t: 
        if x < minimo:
            minimo = x
    a = a + (minimo)
    t = t - (minimo)
    minimo2 = n[0]  
    for y in n: 
        if y < minimo2:
            minimo2 = y
    b = b + (minimo2)
    n = n - (minimo2)
    c = a + b
    return c

这应该与此相同:

def  juntas(a,b):
    return tuple(sorted(a+b))

2 个答案:

答案 0 :(得分:0)

括号运算符有两个相互矛盾的含义:其中一个作为分组运算符。另一个是元组创建。代码中的(minimo)表示评估具有更高优先级的minimo。您希望(minimo,)创建一个长度的元组。

答案 1 :(得分:0)

感谢你的回答,我得到了一个解决方案:

def junta(t,n):
a = ()
b = ()
d =()
while len(t)>0: 
    minimo = t[0]  
    for x in t: 
        if x < minimo:
            minimo = x
    a = a + (minimo,)
    minimo_index = t.index(minimo)
    t = t[:minimo_index] + t[minimo_index+1:]
while len(n)>0:
    minimo2 = n[0]  
    for y in n: 
        if y < minimo2:
            minimo2 = y
    b = b + (minimo2,)
    minimo2_index = n.index(minimo2)
    n = n[:minimo2_index] + n[minimo2_index+1:]
c = a + b
while len(c)>0:
    minimo3 = c[0]  
    for z in c: 
        if z < minimo3:
            minimo3 = z
    d = d + (minimo3,)
    minimo3_index = c.index(minimo3)
    c = c[:minimo3_index] + c[minimo3_index+1:]
return d