繁体   English   中英

Python什么都不显示

[英]Python doesn't show anything

这是我的第一个Python程序,我的第一个专长是我只需要在元组中交换位置:

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

是元组,我需要将Frans与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)))

它不会给出语法错误,但不会显示任何内容。

要显示某些内容,您必须进行print

将最后一行更改为:

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

对于一个简单的任务,这是非常复杂的代码。 检查一下称为列表理解的东西。

将代码更改为:

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

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

更新资料

我在评论中看到了您的解决方案。 我不知道我尚不知道该练习还有更多的前提。 但是我可能会这样做:

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)

map的itererable参数不必是数字范围。 它可能是列表本身。 但是也许我错过了一些东西,而你已经知道了:)

元组在Python中是不可变的:

http://docs.python.org/reference/datamodel.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM