找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3750|回复: 5

[已解决] 菜鸟求助!

3

主题

7

帖子

7

积分

贫民

积分
7
QQ
BigCarrey 发表于 2016-7-4 21:12:42 | 显示全部楼层 |阅读模式
各位大牛好!

今天在做习题时写了下面这段代码,将一个元组列表按照不同方式排序,然后打印出来。排序完成后直接打印列表是没有问题的,但是当使用for循环想要将列表中的元素一一打印出来时就会报错,错误提示为:



具体的代码是:

def main():
    pres = [("Lyndon","Johnson"),("John","Kennedy"),("Andrew","Johnson")]
    # 直接打印元组列表是OK的
    pres.sort(key=lambda present: present[0]):
    print(pres)

    # 但是想要通过for循环将元组转换成字符串打印就是不行
    for present in pres.sort(key=lambda present: present[-1]):
        print(" ".join(present))
    pass

main()

请教各位大神,到底哪儿错了?应该怎么写?



回复

使用道具 举报

3

主题

7

帖子

7

积分

贫民

积分
7
QQ
BigCarrey  楼主| 发表于 2016-7-6 08:58:09 | 显示全部楼层
木有人回答么?自己顶一个...
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
六合童子 发表于 2016-7-8 11:21:13 | 显示全部楼层
直接for p in pres 不行嘛
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-8 18:04:01 | 显示全部楼层
for present in pres.sort(key=lambda present: present[-1]):
这一句中出现了两个:   python无法识别逻辑关系, 建议使用3楼的方案, 赋值给一个变量再循环
回复 支持 反对

使用道具 举报

3

主题

7

帖子

7

积分

贫民

积分
7
QQ
BigCarrey  楼主| 发表于 2016-7-14 20:26:57 | 显示全部楼层
blueelwang 发表于 2016-7-8 18:04
for present in pres.sort(key=lambda present: present[-1]):
这一句中出现了两个:   python无法识别逻辑 ...

请教大神,如果同一行语句有两个“:”python 就无法识别吗?
回复 支持 反对

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-7-15 14:17:58 | 显示全部楼层
BigCarrey 发表于 2016-7-14 20:26
请教大神,如果同一行语句有两个“:”python 就无法识别吗?

是的,你在其它语言中有两个 { 可以识别吗? 这是语言里面的特殊关键字
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表