Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不使用sort()或lambda()函数的情况下对元组列表进行排序?_Python_Sorting - Fatal编程技术网

Python 如何在不使用sort()或lambda()函数的情况下对元组列表进行排序?

Python 如何在不使用sort()或lambda()函数的情况下对元组列表进行排序?,python,sorting,Python,Sorting,我必须在不使用任何内置函数(如sort()或lambda())的情况下对元组列表进行排序 我知道如何对普通列表进行排序,如下所示: a=[2,1,3] for i in range(0, len(a)): for j in range(i+1,len(a)): if (a[i]>a[j]): a[i],a[j]=a[j],a[i] return a 我的输出是:[1,2,3] 然而,当涉及到对元组列表进行

我必须在不使用任何内置函数(如sort()或lambda())的情况下对元组列表进行排序

我知道如何对普通列表进行排序,如下所示:

a=[2,1,3]  
   for i in range(0, len(a)):  
       for j in range(i+1,len(a)):  
           if (a[i]>a[j]):
               a[i],a[j]=a[j],a[i]
return a
我的输出是:[1,2,3]


然而,当涉及到对元组列表进行排序时,比如
((“b”,32),(“c”,1),(“a”,23))
,我必须按照第二个元素的顺序对其重新排序,而不使用sort()或lambda()或任何内置函数,我不知道如何进行排序。谁能帮帮我吗?:)

没什么区别。您可以使用相同的代码进行细微更改: `


`

算法是一样的,只需比较每个元素的第二项

if a[i][1] > a[j][1]:
另外,
((“b”,32),(“c”,1),(“a”,23))
是一个元组,所以它是不可变的,使用列表作为外部容器

def sort_tuples():
    a = [("b", 32), ("c", 1), ("a", 23)]
    for i in range(0, len(a)):
        for j in range(i + 1, len(a)):
            if a[i][1] > a[j][1]:
                a[i], a[j] = a[j], a[i]

    return a

您可以使用最简单的排序算法之一,即冒泡排序。 对于元组中的元组,它将按照元组的第一个元素的顺序进行排序。因此,
((32,“b”),(1,“c”),(23,“a”))
现在,如果您对它进行排序,它将按照元组的第一个元素的顺序进行排序

def sort_tuples():
    a = [("b", 32), ("c", 1), ("a", 23)]
    for i in range(0, len(a)):
        for j in range(i + 1, len(a)):
            if a[i][1] > a[j][1]:
                a[i], a[j] = a[j], a[i]

    return a