详细的讲解一下第三行代码的逻辑,如果可以顺便讲一下for怎么用(一直弄不明白)
list1 = ['1.Jost do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']list2 = ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
list3 = for slogan in list1 for name in list2 if slogan == name]
list3 = for slogan in list1 for name in list2 if slogan == name]
这是一个迭代。slogan从list1中寻找,name从list2中寻找,若两个字符串的第一个字符一样,则进行前面的拼接,即name + ':' + slogan
举例说明:
当name='1.耐克'时,slogan='1.just do it',此时list3中对应的元素由这个语句构成name+':'+slogan,即‘1.耐克’和':'和‘just do it’三个字符串拼接而成,也即‘1.耐克:just do it’,list3的其他元素类似。所以才会出现这个结果。
list3 = for slogan in list1 for name in list2 if slogan == name]
将这一句改为正常的循环结构如下:
list3=[]
for slogan in list1:
for name in list2:
if slogan == name:
list3.append(name + ':' + slogan) 本帖最后由 Twilight6 于 2020-5-25 16:26 编辑
列表推导式 就是 如果后面有 if 条件 ,则if 条件成立就将 成立的值加入列表当作去
如果没有 if 那么就按for循环遍历的顺序加入列表当作去
list3 = for slogan in list1 for name in list2 if slogan == name]
可以分解为
list3 = []
for slogan in list1:
for name in list2:
if slogan == name:
list3.append(name+':'+slogan) 这个问题好火.... 建议搜索,问题已经被问烂了
sunrise085 发表于 2020-5-25 16:23
list3 = for slogan in list1 for name in list2 if slogan == name]
...
那个是啥 Twilight6 发表于 2020-5-25 16:25
建议搜索,问题已经被问烂了
好的嘞,也感谢你的回答 宋立赢 发表于 2020-5-25 16:31
那个是啥
slogan
是切片操作噻
把 slogan 的前面序号给切掉不要了 宋立赢 发表于 2020-5-25 16:33
好的嘞,也感谢你的回答
今天一天 加上你 有不下4人问了好像{:10_250:}都可以直接粘贴复制了 Twilight6 发表于 2020-5-25 16:34
slogan
是切片操作噻
把 slogan 的前面序号给切掉不要了
明白了明白了,从索引2一直到最后,蟹蟹{:5_105:} 宋立赢 发表于 2020-5-25 16:44
明白了明白了,从索引2一直到最后,蟹蟹
没事~~
页:
[1]