2012-01-04 68 views
1

这是我的第一个Python程序,我的第一个锻炼; Tibial是,我只是需要换一下位置在一个元组:Python不显示任何

stamboom = [("Frans","Eefje"), ("Klaar","Eefje"), ("Eefje","Mattho"), 
      ("Eefje","Salammbo"), ("Gustave","Mattho"), ("Gustave","Salambo")] 

是元组,我需要换弗兰斯与Eefje(那些只是名称),然后交换第二个元组。

我读了整个数据结构教程一下Python,我想我能做到这一点是这样的:

#!/path/to/python 

stamboom = [("Frans","Eefje"), ("Klaar","Eefje"), ("Eefje","Mattho"), 
      ("Eefje","Salammbo"), ("Gustave","Mattho"), ("Gustave","Salambo")] 

def switchplace(x): 
    stamboom[x], stamboom[x + 1] = stamboom[x + 1], stamboom[x] 
    return stamboom 

map(switchplace, range(0, len(stamboom))) 

它好好尝试一下给出语法错误,但它并不显示任何内容。

回答

8

给你展示一些你必须要的print吧。

更改最后一行:

print map(switchplace,range(0,len(stamboom))) 
3

这是一个简单的任务非常复杂的代码。检查一下名为理解的东西。

更改代码:

stamboom = [("Frans","Eefje"), ("Klaar","Eefje"), ("Eefje","Mattho"), 
      ("Eefje","Salammbo"), ("Gustave","Mattho"), ("Gustave","Salambo")] 

stamboom = [(item[1], item[0]) for item in stamboom] 
print stamboom 

更新

我看到评论您的解决方案。我不知道是否还有更多我不知道的excersise的前提。但我可能会这样做:

def switchplace(x): 
    return x[1], x[0] 

stamboom = [("Frans","Eefje"),("Klaar","Eefje"),("Eefje","Mattho"), ("Eefje","Salammbo"),("Gustave","Mattho"),("Gustave","Salammbo")] 

print map(switchplace, stamboom) 

映射的迭代参数不一定是数字范围。它可能是列表本身。但也许我错过了一些东西,你已经得到它:)

+1

或甚至更好:'stboom = [(x2,x1)x1,x2在stamboom]' – 2012-01-04 14:33:42

+0

你是对的:) – 2012-01-04 14:42:22

+0

是的我知道,但练习sais它必须使用python的map函数完成。并且给予了这个坟场。 – user1007522 2012-01-04 14:55:15