活学活用:请使用列表推导式补充被小甲鱼不小心涂掉的部分
本帖最后由 xiaojiayu555 于 2020-8-11 10:54 编辑list1=['1.just do it','2.一切皆有可能','3.编程改变世界','4. impossible is nothing']
list2=['4.阿迪达斯','2.李宁','3.工作室','1.耐克']
list3=[]
for slogan in list1:
for name in list2:
if slogan==name:
list3.append(name + ':'+ slogan)
list1
'1.just do it'
list2
'1.耐克'
list1 == list2
False
#上面的if怎么成立的 判断序号呀,这俩列表里面每一个元素的第一个字符都是序号(数字),只要判断这俩是否相等就行了 本帖最后由 uune 于 2020-8-11 11:42 编辑
if判断的是:for循环出来的列表中的元素(字符串)
并把循环出来的字符串赋值给变量(slogan和name,都是字符串)
slogan == slogan(字符串)下标为0的字符,name == name(字符串)下标为0的字符
lis1 和 lis2获取的是列表中的元素(这个上面的2个for循环就做到了)
因为:lis1 == '1.just do it',而lis2 =='1.耐克'
所以:'1.just do it' == '1.耐克',肯定返回False
我们想要的结果:
'1.just do it' == '1'
'1. 耐克' == '1'
如果想要在for循环外面判断:lis1 == lis2,就会返回True。因为'1'=='1'
你的 list1 == list2 是指索引列表的元素,而上面的 if 是通过 for 循环出列表中字符串,然后对字符串的字符进行索引,你举的例子,和题目中的不是一种类别的
详解看看这个吧:
python 第12讲的课后习题第六题
https://fishc.com.cn/thread-175291-1-1.html
(出处: 鱼C论坛)
页:
[1]