鱼C论坛

 找回密码
 立即注册
查看: 940|回复: 5

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

[复制链接]
发表于 2019-7-27 19:49:54 | 显示全部楼层 |阅读模式

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

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

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


对于那个列表推导式,有两个疑问:
1、slogan[2:]是把list1中的最后两个字符串拿出来吗?如果是这样的话对后续有什么用呢?
2、if条件下slogan[0] == name[0]怎么能够让他们一一匹配呢?
最佳答案
2019-7-27 20:05:12
你可以自己试一下:

1. 【slogan[2:] for slogan in list1】结果是:
['just do it', '一切皆有可能', '让编程改变世界', 'impossible is nothing']
就是把数字加‘.'去掉之后的字符串表示出来(从第三个字符开始表示,去掉前两个字符)。
2. list3的内容你修改下:
list3 = [name, slogan for slogan in list1 for name in list2 if slogan[0] == name[0]]
这样能看懂么?
就是定义两个变量,其内容分别从list1 和 list2中提取,条件是:
slogan[0] == name[0]
即每个字符串的前2个内容相同。(如'1.' == '1.' )
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-7-27 20:04:44 | 显示全部楼层
1. 是把第三个字符到最后一个字符取出来,也就是说只把文字取出来,不带上之前的1. 2. 3.   ...
2. 判断列表中每个元素的第一个字符,也就是说他们的 1 2 3,通过数字判断是否对应
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-7-27 20:05:12 | 显示全部楼层    本楼为最佳答案   
你可以自己试一下:

1. 【slogan[2:] for slogan in list1】结果是:
['just do it', '一切皆有可能', '让编程改变世界', 'impossible is nothing']
就是把数字加‘.'去掉之后的字符串表示出来(从第三个字符开始表示,去掉前两个字符)。
2. list3的内容你修改下:
list3 = [name, slogan for slogan in list1 for name in list2 if slogan[0] == name[0]]
这样能看懂么?
就是定义两个变量,其内容分别从list1 和 list2中提取,条件是:
slogan[0] == name[0]
即每个字符串的前2个内容相同。(如'1.' == '1.' )
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-27 20:08:00 | 显示全部楼层
1. slogan[2:] 是把 list1 的每个字符串从第 3 个一直提取到结尾(也就是 'just do it'、'一切皆有可能' 等等)
2. 如果 list1 和 list2 的每个元素的编号相同(也就是"1"、"2" 等等),就匹配

明白了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-27 20:30:52 | 显示全部楼层
新手·ing 发表于 2019-7-27 20:04
1. 是把第三个字符到最后一个字符取出来,也就是说只把文字取出来,不带上之前的1. 2. 3.   ...
2. 判断列 ...

明白啦谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-7-27 20:31:59 | 显示全部楼层
zltzlt 发表于 2019-7-27 20:08
1. slogan[2:] 是把 list1 的每个字符串从第 3 个一直提取到结尾(也就是 'just do it'、'一切皆有可能' 等 ...

明白啦!谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 01:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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