鱼C论坛

 找回密码
 立即注册
查看: 1641|回复: 3

[已解决]关于列表推导式

[复制链接]
发表于 2018-3-26 15:29:45 | 显示全部楼层 |阅读模式

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

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

x
list1=["1.just do it","2.一切皆有可能","3.让编程改变世界","4.impossible is nothing"]
list2=["4.阿迪达斯","2.李宁","3.鱼C工作室","3.耐克"]
要使list3=['1.耐克:just do it', '2.李宁:一切皆有可能', '3.鱼C工作室:让编程改变世界', '4.阿迪达斯:impossible is nothing']
代码如下:
list3=[name+":"+slogan[2:] for slogan in list1 for name in list2 if slogan[0]==name[0]]

求问:1.为何是slogan[2:]
2.在这里slogan[0]==name[0]是什么意思
谢谢解惑!
最佳答案
2018-3-26 16:03:03
st3=[]
or slogan in list1:
    for name in list2:
        if slogan[0]==name[0]  slogan所寻找对象为 ‘1.just do it’  ‘2.一切皆有可能’  等四个口号,对于每一个口号来说都是一个字符串,slogan[0]即每个口号的第一个字符==最前面的数字
            list3.append(name+":"+slogan[2:])   slogan[2:]即从每一个口号的第三个字母算起,去掉数字与标点这两个字符
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-26 15:48:55 | 显示全部楼层
1、name+":"+slogan[2:],这里name已经包含了每一项前面的数字和那个点,如"1.",然后再将slogan拼接的时候就不要加上slogan[0]和slogan[1]了,所以从slogan[2]开始,也就是slogan[2:]。
2、slogan[0]==name[0],这里保证编号对应。也就是说list1中以“1”开头的对应list2中以“1”开头的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-26 15:55:22 | 显示全部楼层
slogan[0]和name[0]的意思你懂吗?就是上面两个列表中元素的索引的第一个元素,也即是编号啊
所以这是一个判断,编号相同的时候就组合起来
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-26 16:03:03 | 显示全部楼层    本楼为最佳答案   
st3=[]
or slogan in list1:
    for name in list2:
        if slogan[0]==name[0]  slogan所寻找对象为 ‘1.just do it’  ‘2.一切皆有可能’  等四个口号,对于每一个口号来说都是一个字符串,slogan[0]即每个口号的第一个字符==最前面的数字
            list3.append(name+":"+slogan[2:])   slogan[2:]即从每一个口号的第三个字母算起,去掉数字与标点这两个字符
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-30 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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