要看懂这个首先你要明白list22中的列表引导式表达的意义。
list22 = [name + ':' + slogan[2:] for slogan in list20 for name in list21 if slogan[0] == name[0]]
首先看 for slogan in list20 和 for name in list21两句,
这两个句比较简单,就是个二维的列表遍历,遍历了两个列表中的每一个元素。
(二维的的列表遍历可以想象下班级座位,每一行每一排,也可以参考佳宇老师那个摸三色球的问题。)
下面一句if slogan[0] == name[0]的话,(也就是两个列表中每个元素的第0个索引值结果相等的话(每个元素中开头的"0"、“1”“2”之类的)),
if这个作用其实就是判断两个列表中每个元素中开头字符是否相等。
将name + ':' + slogan[2:]append进list22列表。(name这里指的是list21中的每个元素,slogan这里指的是list20中的每个元素)
slogan[2:]指的是slogan去掉前面两个元素之后的所有内容。例如"1.Just do it'",去掉头两个元素结果就是“Just do it ”.
上面理解了之后,下面for循环打印list22中的每个元素就比较好理解了。