零基础学python第12课 课后作业第6题答案没看懂
list3 = for slogan in list1 for name in list2 if slogan == name]关于slogan和 if 后的条件没看懂
麻烦各位啦,求解答ヾ(=・ω・=)o 谢谢大家,感谢{:9_228:}哇 看这个:戳我前进 本帖最后由 shatanzongcai 于 2020-5-3 15:13 编辑
list3 = []
for slogan in list1:
for name in list2:
if slogan==name:
x = name+':'+slogan
print(x)
list3.append(x)
我帮你展开了列表推导式的语句。整个语句的意思是,你先拿出一个list1里面的值,然后再历遍list2里面,看一看有没有和它开头第一个字符是一样的(因为小甲鱼给出提示,开头数字一样的就是对应的品牌和广告词),如果有则会输出一个x = name+':'+slogan把品牌和slogan联合起来(为了好看小甲鱼把slogan前面的数字和点去掉了,所以才有了slogan)。搞完了这个,就拿出list1里面的第二个值,再重复上面的内容直到所有的list1的值全部历遍。两个历遍你看得可能会很懵逼,但是你把它想象成一个树形图就可以了。
liliya 发表于 2020-5-3 15:02
查一下列表推导式, for slogan in list1 for name in list2 if slogan == name]相当于:
if slogan == name后面少写了个冒号:,你自己加一下。如果满意给个最佳谢谢~列表推导式是固定的套路一层一层先写条件,然后写满足条件的结果一层层写,你可以看看前面几道题跟这个一样的哈。规律很简单滴 查一下列表推导式, for slogan in list1 for name in list2 if slogan == name]相当于:
for slogan in list1:
for name in list2:
if slogan == name
]
前面的内容是省if条件成立下的结果: 后面是一层层的条件,对照着你可以直接照抄下来就答案了。列表推导式很有规律的。
页:
[1]