更改列表中2个元素位置的函数

时间:2014-10-28 15:04:38

标签: python list function

如果我写这个,我必须编写一个可以工作的函数:

s = ["John", "Bertha", "Janna", "Daniel", "Emma"]
change(s,2,4)
print(s)
["John", "Bertha", "Emma", "Daniel", "Janna"]

我基本上必须定义一个函数来改变列表中2个元素的位置,其中a, b是它们的索引。

我尝试过这样做,但我似乎无法找到一个好的解决方案:

def change(s,a,b):
    a,b = s.index(a), s.index(b)
    s[b], s[a] = s[a], s[b]

这显然不起作用,我不知道如何更改2个元素的位置,其中a, b是它们的索引,我知道如何切换2个项目,但不知道如何用一个功能..如何继续关于这一个?

1 个答案:

答案 0 :(得分:3)

ab是您需要切换的项目的索引。如果您已经知道它们的位置,那么您可以(应该)删除对list.index的调用:

>>> s = ["John", "Bertha", "Janna", "Daniel", "Emma"]
>>> def change(s, a, b):
...     s[b], s[a] = s[a], s[b]
...
>>> change(s, 2, 4)
>>> s
['John', 'Bertha', 'Emma', 'Daniel', 'Janna']
>>>