鱼C论坛

 找回密码
 立即注册
查看: 1083|回复: 5

零基础学python第12课 课后作业第6题答案没看懂

[复制链接]
发表于 2020-5-3 14:42:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
关于slogan和 if 后的条件没看懂
麻烦各位啦  ,求解答ヾ(=・ω・=)o
问题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-5-3 18:06:28 | 显示全部楼层
谢谢大家,感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-3 15:22:38 | 显示全部楼层
看这个:戳我前进
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-3 15:07:26 | 显示全部楼层
本帖最后由 shatanzongcai 于 2020-5-3 15:13 编辑
list3 = []
for slogan in list1:
        for name in list2:
                if slogan[0]==name[0]:
                        x = name+':'+slogan[2:]
                        print(x)
                        list3.append(x)

我帮你展开了列表推导式的语句。整个语句的意思是,你先拿出一个list1里面的值,然后再历遍list2里面,看一看有没有和它开头第一个字符是一样的(因为小甲鱼给出提示,开头数字一样的就是对应的品牌和广告词),如果有则会输出一个x = name+':'+slogan[2:]把品牌和slogan联合起来(为了好看小甲鱼把slogan前面的数字和点去掉了,所以才有了slogan[2:])。搞完了这个,就拿出list1里面的第二个值,再重复上面的内容直到所有的list1的值全部历遍。两个历遍你看得可能会很懵逼,但是你把它想象成一个树形图就可以了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-3 15:07:07 | 显示全部楼层
liliya 发表于 2020-5-3 15:02
查一下列表推导式, for slogan in list1 for name in list2 if slogan[0] == name[0]]相当于:

if slogan[0] == name[0]后面少写了个冒号:,你自己加一下。如果满意给个最佳谢谢~列表推导式是固定的套路一层一层先写条件,然后写满足条件的结果一层层写,你可以看看前面几道题跟这个一样的哈。规律很简单滴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-3 15:02:53 | 显示全部楼层
查一下列表推导式, for slogan in list1 for name in list2 if slogan[0] == name[0]]相当于:
for slogan in list1:
    for name in list2: 
       if slogan[0] == name[0]
              [name + ':' + slogan[2:] ]

前面的内容是省if条件成立下的结果: [name + ':' + slogan[2:] 后面是一层层的条件,对照着你可以直接照抄下来就答案了。列表推导式很有规律的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 03:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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