如何在Python中交换列表中的两项?

如何在Python中交换列表中的两项?,python,Python,想知道如何在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'] >>

想知道如何在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]]
    

正如其他人所说,您可以:

name_list.reverse()
如果这是一个家庭作业,您通常会看到类似的内容(否则,这将是一个使用python标准方法的练习,而不是理解交换算法):


但是,这些都取决于您的列表中只有2项。您的
for
循环让我觉得您的数据结构比这更复杂。您可以向我们展示一些输入和输出示例吗?

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

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

如果列表包含两个以上的条目怎么办?Python列表有一个
.reverse()
方法。
swap\u name(name\u list)
甚至完全等同于
name\u list.reverse()
。要交换任何列表中的最后两个项,正确的答案是(如果它是关于交换项而不仅仅是反转列表),请使用以下命令:
name[-2],名称[-1]=name[-1],名称[-2]
。如果错误
TypeError:Index不支持可变操作
,则使用:
name=list(name)
>>> name = ['Tommy', 'Jason']
>>> name[0], name[1] = name[1], name[0]
>>> name
['Jason', 'Tommy']