寒暄371 发表于 2020-10-15 11:17:44

12讲第六题不明白

6. 活学活用:请使用列表推导式补充被小甲鱼不小心涂掉的部分



   
>>> list3 = for slogan in list1 for name in list2 if slogan == name]

这个答案里面slogan怎么来的?没看明白,请教各位高人指点

wp231957 发表于 2020-10-15 11:19:56

slogan就是循环里的一个临时变量

疾风怪盗 发表于 2020-10-15 11:21:01

for循环的临时变量
list3 = for slogan in list1 for name in list2 if slogan == name]
是个列表推导式,相当于
list3 =[]
for slogan in list1:
    for name in list2:
      if slogan == name:
            list3.append(name + ':' + slogan)

寒暄371 发表于 2020-10-15 11:23:29

wp231957 发表于 2020-10-15 11:19
slogan就是循环里的一个临时变量

我看答案,怎么感觉它是个列表啊,而且是跟list1有关的列表

wp231957 发表于 2020-10-15 11:25:43

寒暄371 发表于 2020-10-15 11:23
我看答案,怎么感觉它是个列表啊,而且是跟list1有关的列表

list3是一个列表,后面中括号里的是列表推导式
这是py的一个特色,可以省略一些循环语句

寒暄371 发表于 2020-10-15 11:30:01

疾风怪盗 发表于 2020-10-15 11:21
for循环的临时变量

是个列表推导式,相当于

slogan取list1第一个元素的第一个字符和name作比较,相同就... ,同时取slogan的第三个字符以后的内容。好像看明白了,多谢你的指点

寒暄371 发表于 2020-10-15 11:30:41

wp231957 发表于 2020-10-15 11:25
list3是一个列表,后面中括号里的是列表推导式
这是py的一个特色,可以省略一些循环语句

多谢指点
页: [1]
查看完整版本: 12讲第六题不明白