交换python元素

交换python元素,python,list,sorting,Python,List,Sorting,查看列表中连续的一对元素,如果它们的顺序不正确,则交换它们(可能多次交换一个数字) 我曾尝试使用for循环等,但无法解决该问题 删除 我需要使用函数,而不是任何python库。我可以用一个(已经有了!)来解决这个问题,但我需要使用低级初学者的方法 例如:bubble([2,1,4,3])==[1,2,3,4]您可以使用元素的索引来交换它们: def swap(seq, idx, jdx): """swaps the two elements of the sequence, identi

查看列表中连续的一对元素,如果它们的顺序不正确,则交换它们(可能多次交换一个数字)

我曾尝试使用for循环等,但无法解决该问题

删除

我需要使用函数,而不是任何python库。我可以用一个(已经有了!)来解决这个问题,但我需要使用低级初学者的方法


例如:bubble([2,1,4,3])==[1,2,3,4]

您可以使用元素的索引来交换它们:

def swap(seq, idx, jdx):
    """swaps the two elements of the sequence, identified by their indices
    in-place, mutates seq
    return: None
    """
    seq[idx], seq[jdx] = seq[jdx], seq[idx]
交换值的一行程序在右侧创建一个值元组,并在左侧解包(将每个值分配给一个变量)

value_list =[4,3,2,1]

for a in range(len(value_list)):
    for b in range(len(value_list)):
        if value_list[b] > value_list[a]:
            value_list[b],value_list[a]=value_list[a],value_list[b]

print(value_list)
您可以在以下函数中使用此函数:

value_list =[4,3,2,1]
def sort_list(given_list):
    for a in range(len(given_list)):
        for b in range(len(given_list)):
            if given_list[b] > given_list[a]:
                given_list[b],given_list[a]=given_list[a],given_list[b]
    return given_list

print(sort_list(value_list))

那么你正在尝试实现冒泡排序?你能展示一下你目前使用的代码吗?你描述的算法叫做冒泡排序。这是一个python实现:不显示实现,而是伪代码,这样OP就可以自己回答问题并从学习中获益-->这是可行的,因为对python来说
a,b
相当于
(a,b)
元组([a,b])
。而元组是不可变的,所以这个答案中所示的交换方法不会“自上而下”。我只是想澄清一下,Python让泡泡运动变得太简单了