2014-02-07 103 views
-3
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

如果列表中包含兩個以上的項目? –

+3

Python列表有一個'.reverse()'方法。 – geoffspear

+2

'swap_name(name_list)'甚至完全等價於'name_list.reverse()'。 – poke

回答

1

正如其他人所說,你可以這樣做:

name_list.reverse() 

如果這是家庭作業,你通常希望更多像這樣的(否則,這將是使用python標準方法的鍛鍊展示一些東西,而不是理解交換算法):

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

但是,這些都是依賴於您的列表只有其中2項。你的for循環讓我感覺你的數據結構比這更復雜。你能向我們展示一些示例輸入和輸出嗎?

4

在Python中,你可以交換元素與一個表達:left, right = right, left

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

正確的答案(如果是關於交換項目而不是僅僅反轉列表) – Steven

相關問題