list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
拆开看:
list =?[name + ':' + slogan[2:]] 这里涉及到字符串的拼接和切片;
A: for slogan in list1 是遍历list1 获取slogan[2:]的值;
B: for name in list2 是遍历list2 获取name的值;
if slogan[0] == name[0] 是一个判断条件,用于判定slogan和name是否对应。
这个推导式相当于以下代码:
list3 = []
for slogan in list1:
????for name in list2:
????????if?slogan[0] == name[0]:
????????????item =?name + ':' + slogan[2:]
????????????list3.append(item)