如何在Python中交换列表中的2个项目?

时间:2014-02-07 13:37:23

标签: python

def swap_name(name_list): 
""" (list of str) -> NoneType 

Modify name_list so that the first name and last name are swapped. 

>>> name = ['Tommy', 'Jason'] 
>>> swap_name(name) 
>>> name 
['Jason', 'Tommy'] 

""" 
# My Answer which is not complete and i don't know how to complete it or how to correct it. I tried in every way but it didn't work...I need your help

for i in range (len (name_list)):
    name_list[i] = [name_list[1] , name_list[0]]

2 个答案:

答案 0 :(得分:5)

在python中,您可以使用一个表达式交换元素:left, right = right, left

>>> name = ['Tommy', 'Jason']
>>> name[0], name[1] = name[1], name[0]
>>> name
['Jason', 'Tommy']

答案 1 :(得分:1)

正如其他人所说,你可以这样做:

name_list.reverse()

如果这是作业,通常需要显示更像这样的东西(否则,这将是使用python标准方法的练习,而不是理解交换算法):

temp = name_list[0]
name_list[0] = name_list[1]
name_list[1] = temp

但是,这些都依赖于您的列表,其中只有2个项目。您的for循环让我觉得您的数据结构比这更复杂。你能告诉我们一些输入和输出的例子吗?