找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2125|回复: 4

[求助] 小白求助。。

3

主题

7

帖子

7

积分

贫民

积分
7
西路漫漫 发表于 2017-11-27 22:38:38 | 显示全部楼层 |阅读模式
现在自学python遇到了许多问题,还请大神不吝赐教,谢谢!!
favorite_languages={
    'jen':'python',
    'sarah':'c',
    'edward':'ruby',
    'phil':'python',
    }
for name,languages in favorite_languages.items():
        print(name.title()+"'s favorite languages is "+languages.title()+".")
invite_name=['jen','phil','wang','yang']
for name in favorite_languages.keys():
        if name in invite_name:
                print("Thanks for you ,"+name.title()+".")
        elif name not in invite_name:
            print("Invite you to participate in the survey"+???+".")
如何才能打印其他没有重复的人的名字??
回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2017-11-28 05:29:43 | 显示全部楼层
favlan_name=list(favorite_languages.keys())
for name in set(invite_name).difference(set(favlan_name)):
    ...:     ...:     print (name)
    ...:     
wang
yang
取差集.

回复 支持 反对

使用道具 举报

3

主题

7

帖子

7

积分

贫民

积分
7
西路漫漫  楼主| 发表于 2017-11-28 20:40:04 | 显示全部楼层
sheeboard 发表于 2017-11-28 05:29
favlan_name=list(favorite_languages.keys())
for name in set(invite_name).difference(set(favlan_name) ...

大神,感谢赐教!!刚刚还有点不懂,把这段代码加入第一个for循环里,紧跟elif,始终打印出两对wang,yang.
但把这个提到第一个for循环之前,就只输出一个结果。
再次感谢!!
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2017-11-28 20:53:47 | 显示全部楼层
allinvite_name=[]
favlan_name=list(favorite_languages.keys())
allinvite_name.extend(set(invite_name).intersection(set(favlan_name)))
allinvite_name.extend(set(invite_name).difference(set(favlan_name)))

allinvite_name
['phil', 'jen', 'wang', 'yang']
其实就是集合操作。
回复 支持 反对

使用道具 举报

3

主题

7

帖子

7

积分

贫民

积分
7
西路漫漫  楼主| 发表于 2017-11-28 21:15:44 | 显示全部楼层
sheeboard 发表于 2017-11-28 20:53
allinvite_name=[]
favlan_name=list(favorite_languages.keys())
allinvite_name.extend(set(invite_name ...

额,我目前按照书上的教程一步一步练习,这个并没有讲过。
这个是书上的练习题,没有标准答案。给了一段中文让我实现目标,我也不敢说我完全实现了意思,但就输出结果而言勉强算对了。
再次感谢,又教会了我集合的操作!
回复 支持 反对

使用道具 举报

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

本版积分规则

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