簡體   English   中英

交換元素python

[英]Swap elements python

查看列表中連續的一對元素,如果它們無序則交換它們(可能交換一個數字不止一次)。

我曾嘗試使用 for 循環等,但無法解決問題。

已刪除

我需要使用函數而不是任何 python 庫。 我可以使用一個(已經有!)解決這個問題,但我需要使用低級初學者方法。

例如:氣泡([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]

交換值的一個 liner 在右側創建一個值元組,並在左側解包(將每個值分配給一個變量)。

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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM