鱼C论坛

 找回密码
 立即注册
查看: 780|回复: 2

[已解决]关于列表推导的问题

[复制链接]
发表于 2019-3-15 17:53:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
list1 = ['1.just do it','2.一切皆有可能','3.让变成改变世界','4.impssible']
>>> list2 = ['4.阿迪达斯','2.李宁','3.工作室','1.耐克']
>>> list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
>>> for i in list3:
        print(i)

       
1.耐克:just do it
2.李宁:一切皆有可能
3.工作室:让变成改变世界
4.阿迪达斯:impssible


>>> list1 = ['1.just do it','2.一切皆有可能','3.让变成改变世界','4.impssible']
>>> list2 = ['4.阿迪达斯','2.李宁','3.工作室','1.耐克']
>>> list3 = [name + ':' + slogan for slogan in list1 for name in list2 if slogan[0] == name[0]]
>>> for i in list3:
        print(i)

       
1.耐克:1.just do it
2.李宁:2.一切皆有可能
3.工作室:3.让变成改变世界
4.阿迪达斯:4.impssible


有几个地方不懂,为什么slogan[0] == name[0]这个条件排列正确才能达到条件输出,[0]是对比列表的元素位置,还是按照列表里面的1. 2. 3.这样来做等于吗,
上面的一串代码list3是name + ':' + slogan[2:],下面的是name + ':' + slogan,为什么在后面加上[2:]  输出出来的数据 就没有多余的1. 2. 3. 了
最佳答案
2019-3-15 18:41:26
第一个疑问:
‘for slogan in list1‘取出来的是字符串,所以可以做切片,故slogan[0]指的的list1中各个元素(即字符串:如'1.just do it')中的1;相同的name[0]与之相似,是list2中元素的1、2、3;
第二个疑问:
slogan[2:]与slogan的不同
以 list1中第一个元素'1.just do it'为例:
slogan[2:]=‘just do it’
slogan='1.just do it'
最后说明一下,上述就是利用元素中的1、2、3的相同来查找对比的,只要都是1那么就取出相对应的元素出来。
小伙伴明白了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-3-15 18:17:39 | 显示全部楼层
slogan,name都是列表的元素,都是字符串,字符串和列表一样支持索引切片,按每个字母,从零开始
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-15 18:41:26 | 显示全部楼层    本楼为最佳答案   
第一个疑问:
‘for slogan in list1‘取出来的是字符串,所以可以做切片,故slogan[0]指的的list1中各个元素(即字符串:如'1.just do it')中的1;相同的name[0]与之相似,是list2中元素的1、2、3;
第二个疑问:
slogan[2:]与slogan的不同
以 list1中第一个元素'1.just do it'为例:
slogan[2:]=‘just do it’
slogan='1.just do it'
最后说明一下,上述就是利用元素中的1、2、3的相同来查找对比的,只要都是1那么就取出相对应的元素出来。
小伙伴明白了吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-11 07:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表