交换功能

时间:2015-11-15 00:42:10

标签: python list python-3.x swap

现在我有一个函数可以将列表中的位置与下一个数字交换,例如swap_cards([1,2,3,4,5], 2) - > swap_cards = [1,2,4,3,5] 我如何更改我的代码所以当我在另一个函数中调用它时我可以更改函数swap_cards的索引

def swap_cards(cards, index):
    cards_len = len(cards)
    if not 0 <= index < cards_len:
        return cards
    elif index == cards_len - 1:
        return [cards[-1]] + cards[1:-1] + [cards[0]]
    else:
        return cards[:index] + [cards[index+1]] + [cards[index]] +\
            cards[index+2:]

def move_3(cards):
    if 3 in cards:
        swap_cards(cards, cards.index(3))
        return cards

现在我只能找到索引的位置,但不知道如何将索引再移动一个空间

1 个答案:

答案 0 :(得分:0)

我认为当你说你想改变指数时,这就是你的意思。

def swap_cards(cards, index):
    cards_len = len(cards)
    if not 0 <= index < cards_len:
        return cards
    elif index == cards_len - 1:
        return [cards[-1]] + cards[1:-1] + [cards[0]]
    else:
        return cards[:index] + [cards[index+1]] + [cards[index]] +\
            cards[index+2:]

更新了功能。

def move_3(cards):
    for item in cards:
        if item == 3:
           return swap_cards(cards, index=3)

如果您在此功能中键入相同的数字列表[1,2,3,4,5],您将获得[1,2,3,5,4]。

print(move_3([1,2,3,4,5]))
[1, 2, 3, 5, 4]