python的答案有点没看明白

答案是list 3 = [name + ':' + slogan[2:] for slogan in list 1 for name in list 2 if slogan[0] == name[0]]
slogan[2:]中的2:是什么意思?

img

遍历list1和list2,
当条件第一次满足时slogan[0]=name[0]='1',
也就是此时:
slogan='1.Jost do it'
name='1.耐克'
这时将2个元素组合连接起来,
而slogan[2:]=slogan[2:-1]='Jost do it'
所以name+":"+slogan[2:]即:
'1.耐克' + ':' + 'Jost do it' = '1.耐克:Jost do it'

知识点:列表切片
[2:]:获取从位置是第2个元素(即第3个元素)开始到最后一个元素。
例如:
a = [1, 2, 3, 4, 5]
b = a[2:]
print(b) # [3, 4, 5]

索引,即下标
例slogan是一个list,slogan=[1,2,3,4],列表内元素下标以0开始
slogan[0]的值就是1
slogan[1]的值就是2
slogan[2]的值就是3
slogan[3]的值就是4

[2:]就是从第3个元素一直取到最后