python中for循环的应用

list1=['1.Just do It','2.一切皆有可能']
>>> list2=['2.李宁','1.耐克']
>>> list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
>>> for each in list3:
print(each)
最后的list3是在看不懂什么意思啊,求大神帮我分析下,我打了slogan对象里面是什么东西,为什么slogan要从第二个开始切片?

我们展开生成list3的表达式,变成标准的for循环:

list3 = []
for name in list2:
    for slogan in list1:
        if slogan[0] == name[0]:
            list3.append(name + ':' + slogan[2:])

这样就可以看得很清楚了。

name变量和slogan变量都是字符串,各自遍历list2和list1中的每一个元素。比如在第一次进入for循环时,name是'2.李宁',slogan是'1.Just do It'。对于字符串变量slogan:

slogan[0]表示取第0个字符,即'1';

slogan[2:]表示取从第2个字符开始到结束,即'Just do It';

这都是python的原生语法,应该熟练掌握。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-07
list3用的是列表解析追问

什么意思,完全不懂

追答

python有种语法叫列表解析

相似回答