鱼C论坛

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

[已解决]python第12课最后一题

[复制链接]
发表于 2016-6-25 23:50:45 | 显示全部楼层 |阅读模式
1鱼币
最后一题按照代码打印和小家与给的不一样啊
>>> list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
>>> list2 = ['4.阿迪达斯','3.李宁','2.鱼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.鱼c工作室:一切皆有可能
3.李宁:让编程改变世界

4.阿迪达斯:Impossible is Nothing



list3 = [name+':'+slogan[2:]for slogan in list1 for name in list2 if slogan[0]==name[0]]
这个里面slogan[2:]是什么含义??
最佳答案
2016-6-25 23:50:46
1,你写的跟人家的不一样,打印粗来的怎么会一样?
list2里面,第1个元素和第2个元素应该是'2.李宁',‘3.鱼c工作室’
下面的list3 是一个列表推导式 solgan[2:] 中:
solgan仅仅是一个变量 ,相当于 for each in list1 中的each,可以把slogan写成 each 或其他的名字,当然后面的solgan也要相应的 改变
[2:]是一个分片操作,这里表示取该元素(这里是字符串)的第2个到最后的元素 如‘3.李宁'[2:]就是'李宁'

044035qddrqkmrqod4cqmr.png

最佳答案

查看完整内容

1,你写的跟人家的不一样,打印粗来的怎么会一样? list2里面,第1个元素和第2个元素应该是'2.李宁',‘3.鱼c工作室’ 下面的list3 是一个列表推导式 solgan[2:] 中: solgan仅仅是一个变量 ,相当于 for each in list1 中的each,可以把slogan写成 each 或其他的名字,当然后面的solgan也要相应的 改变 [2:]是一个分片操作,这里表示取该元素(这里是字符串)的第2个到最后的元素 如‘3.李宁'[2:]就是'李宁'
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-25 23:50:46 | 显示全部楼层    本楼为最佳答案   
1,你写的跟人家的不一样,打印粗来的怎么会一样?
list2里面,第1个元素和第2个元素应该是'2.李宁',‘3.鱼c工作室’
下面的list3 是一个列表推导式 solgan[2:] 中:
solgan仅仅是一个变量 ,相当于 for each in list1 中的each,可以把slogan写成 each 或其他的名字,当然后面的solgan也要相应的 改变
[2:]是一个分片操作,这里表示取该元素(这里是字符串)的第2个到最后的元素 如‘3.李宁'[2:]就是'李宁'

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-6-30 16:57:12 | 显示全部楼层

最后一题按照代码打印和小家与给的不一样啊
>>> list1 = ['1.Just do it','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
>>> list2 = ['4.阿迪达斯','3.李宁','2.鱼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)

您 代码写错了  2.一切皆有可能 对应 2.鱼C工作室  是对的
应该是 3.一切皆有可能  2.让编程改变世界 就对  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-7-2 21:08:18 | 显示全部楼层
学习到了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-1 21:28:58 | 显示全部楼层
list3 = [name+':'+slogan[2:]for slogan in list2 for name in list1 if slogan[0]==name[0]]

如果,name[0]是代表1,2,3,4
          slogan[0]代表1,2,3,4
判断1对1.。。。
name + slogan[2:],--->这个是切片,去掉1.   2.   3.   4.   这样
            
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-2 09:35:42 | 显示全部楼层
slogan[2:]就是一个字符串分片的操作
[start : end]   代表从字符串中取出从 第start号 到 end号 的元素

比如:
  1. >>> a = "ILoveFishc"
  2. >>> a[2:5]
  3. 'ove'
复制代码

就是取出了从第二个元素到第五个元素(不包含第五个元素)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-21 20:15:52 | 显示全部楼层
操作错了,顺序不对
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-8-25 11:01:19 | 显示全部楼层
每串字符的第二位开始到最后
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-9 18:12:40 | 显示全部楼层
每串字符的第二位开始到最后
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-21 11:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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