我很难在Python中表达这一点。
这是需要做什么的描述。
swap_cards :( int,int列表) - > NoneType
swap_cards([3, 2, 1, 4, 5, 6, 0], 5) [3, 2, 1, 4, 5, 0, 6] swap_cards([3, 2, 1, 4, 5, 6, 0], 6) [0, 2, 1, 4, 5, 6, 3]`
我已经创建了2个示例,但我不知道如何启动函数体。
答案 0 :(得分:1)
这里需要一些索引表示法:
>>> def swap_cards(L, n):
... if len(L) == n + 1:
... L[n], L[0] = L[0], L[n]
... return L
... L[n], L[n+1] = L[n+1], L[n]
... return L
...
>>> swap_cards([3, 2, 1, 4, 5, 6, 0], 5)
[3, 2, 1, 4, 5, 0, 6]
>>> swap_cards([3, 2, 1, 4, 5, 6, 0], 6)
[0, 2, 1, 4, 5, 6, 3]
答案 1 :(得分:1)
您可以使用元组交换习语a, b = b, a
来交换变量,注意对于需要包裹索引的边缘情况index % len(seq)
<强>实施强>
def swap_cards(seq, index):
indexes = (index, (index + 1)% len(seq))
seq[indexes[0]], seq[indexes[1]] = seq[indexes[1]], seq[indexes[0]]
return seq
示例强>
>>> swap_cards([3, 2, 1, 4, 5, 6, 0], 6)
[0, 2, 1, 4, 5, 6, 3]
>>> swap_cards([3, 2, 1, 4, 5, 6, 0], 5)
[3, 2, 1, 4, 5, 0, 6]
答案 2 :(得分:0)
def swap_cards(deck, index):
if index in range(0, len(deck)):
factor = (index + 1) % len(deck)
aux = deck[factor]
deck[factor] = deck[index]
deck[index] = aux
return deck
else:
return None
deck = [3, 2, 1, 4, 5, 6, 0]
new_deck = swap_cards(deck, 6)
print new_deck
输出:
[0, 2, 1, 4, 5, 6, 3]