鱼C论坛

 找回密码
 立即注册
查看: 1106|回复: 8

[已解决]列表推导式题,不太明白

[复制链接]
发表于 2018-1-23 14:25:45 | 显示全部楼层 |阅读模式

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

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

x
课后作业,列表推导式,标红的部分不明白,求注释,O(∩_∩)O谢谢

>>> 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.耐克:Just do It
2.李宁:一切皆有可能
3.鱼C工作室:让编程改变世界
4.阿迪达斯:Impossible is Nothing
最佳答案
2018-1-23 14:27:39
等价于
  1. list3 = []
  2. for slogan in list1:
  3.     for name in list2:
  4.         if slogan[0] == name[0]:
  5.             list3.append(name+':'+slogan[2:])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-23 14:27:39 | 显示全部楼层    本楼为最佳答案   
等价于
  1. list3 = []
  2. for slogan in list1:
  3.     for name in list2:
  4.         if slogan[0] == name[0]:
  5.             list3.append(name+':'+slogan[2:])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-23 14:40:35 | 显示全部楼层

list3.append(name+':' + slogan[2:])  [2:]这是什么意思呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-23 14:43:07 | 显示全部楼层
云朵颂 发表于 2018-1-23 14:40
list3.append(name+':' + slogan[2:])  [2:]这是什么意思呢

字符串也支持切片
比如 a = 'good'
那么 a[2:] == 'od'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-23 14:46:17 | 显示全部楼层
BngThea 发表于 2018-1-23 14:43
字符串也支持切片
比如 a = 'good'
那么 a[2:] == 'od'

为啥要切呢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-23 14:49:17 | 显示全部楼层

你自己把切的删了,看看输出了什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-23 14:58:41 | 显示全部楼层
BngThea 发表于 2018-1-23 14:49
你自己把切的删了,看看输出了什么

标题就重复了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-23 15:03:07 | 显示全部楼层
name + ':' + slogan[2:] 的作用是连接两个字符串,并且slogan字符串的前两个字符不要,也就是不要1. 2. 3. 4.
slogan[0] == name[0] 的作用是判断字符串的第一个字符是否是一样的,也就是序号一样的字符串相连接
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-23 15:16:35 | 显示全部楼层
graceasyi 发表于 2018-1-23 15:03
name + ':' + slogan[2:] 的作用是连接两个字符串,并且slogan字符串的前两个字符不要,也就是不要1. 2. 3. ...

明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-7 03:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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