-1

だから私は事前定義された機能があることを知っていますが、まだ基本を練習しています。

リスト内の整数の束を最小から最大の数に並べ替えたい。

私はこの関数を定義しました:

def swap(a, b):
    c = a
    a = b
    b = c

    return a, b

そして、これは私がしようとしているものです:

def low_to_big_sort():   

    n = [2, 1, 63, 6, 8, 5, 12]
    swap(n[0], n[1])

    return n

定義されたものと同じリストを返します。私のコードで何が間違っていますか?

4

2 に答える 2

2

swapリストを変更せずに名前を交換するだけなので、関数は何もしません。

これは、次の 3 つの方法で修正できます。

  • タプルアンパックを使用した正規の Python スワッピング:

    n[0], n[1] = n[1], n[0]
    
  • からの戻り値を実際に使用するswap

    n[0], n[1] = swap(n[0], n[1])
    
  • スワップする配列とインデックスのペアを渡す:

    def swapind(l, a, b):
        l[a], l[b] = l[b], l[a]
    
    swapind(n, 0, 1)
    

最初の方法 (「Pythonic」) は、操作の内容が明確であるため、最も望ましい方法です。

于 2013-08-24T21:52:28.337 に答える
0

それ自体を修正する必要があるためlist...

def swap(L, a, b):
    L[a], L[b] = L[b], L[a]

n = [2, 1, 63, 6, 8, 5, 12]
swap(n, 0, 1)
于 2013-08-24T21:52:53.067 に答える