鱼C论坛

 找回密码
 立即注册
查看: 1691|回复: 4

[已解决]关于python零基础第012将课后作业的问题

[复制链接]
发表于 2017-5-3 16:28:23 | 显示全部楼层 |阅读模式

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

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

x
044035qddrqkmrqod4cqmr.png

答案是:list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]

请问name + ':' + slogan[2:]是什么鬼?slogan[2:]是list1列表的分片吗?还有list2列表中的顺序是乱的,这里也没有用sort()将他重新排序啊?求解,谢谢!
最佳答案
2017-5-3 17:05:01
给你分解了一下,看注释,我已经尽可能说的很清楚了
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]]
#上面这句其实是下面5句的组合形式,你能理解下面5句才能理解上面一整句
list3 = []     #这句是定义一个空列表,没问题吧
for slogan in list1:    #这句是循环列表1中每个字符串
  for name in list2:     #循环列表2的字符串
    if slogan[0] == name[0]:     #这句是用来判定两个列表中字符串的第一个元素是不是相当的(其实就是在匹配1,2,3,4这几个数字),只有当他们相等的时候才匹配,这就是为什么第二个列表的顺序是乱的也能和第一个列表匹配上
      list3.append(name+":"+slogan[2:])   #这句是把2个列表中元素合成一个字符串,slogan[2:]表示从第3个元素开始,也就是不需要前面的1.
for each in list3:
  print(each)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-5-3 17:05:01 | 显示全部楼层    本楼为最佳答案   
给你分解了一下,看注释,我已经尽可能说的很清楚了
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]]
#上面这句其实是下面5句的组合形式,你能理解下面5句才能理解上面一整句
list3 = []     #这句是定义一个空列表,没问题吧
for slogan in list1:    #这句是循环列表1中每个字符串
  for name in list2:     #循环列表2的字符串
    if slogan[0] == name[0]:     #这句是用来判定两个列表中字符串的第一个元素是不是相当的(其实就是在匹配1,2,3,4这几个数字),只有当他们相等的时候才匹配,这就是为什么第二个列表的顺序是乱的也能和第一个列表匹配上
      list3.append(name+":"+slogan[2:])   #这句是把2个列表中元素合成一个字符串,slogan[2:]表示从第3个元素开始,也就是不需要前面的1.
for each in list3:
  print(each)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-5-3 18:09:17 | 显示全部楼层
gopythoner 发表于 2017-5-3 17:05
给你分解了一下,看注释,我已经尽可能说的很清楚了

您这样一说我就清楚了,slogan[2:]是对list2列表中单个元素(也就是字符串)进行分片,然后和litst1中的元素进行拼接。但是这个slogan[0] == name[0]不是很好理解,我知道列表之间比较是看第一个元素,难得字符串也能比较大小,也是看第一个字符吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-3 19:41:07 | 显示全部楼层
疍鈔飯 发表于 2017-5-3 18:09
您这样一说我就清楚了,slogan[2:]是对list2列表中单个元素(也就是字符串)进行分片,然后和litst1中的 ...

是的,字符串也可以进行切片操作,你可以自己试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-5-3 22:19:42 | 显示全部楼层
gopythoner 发表于 2017-5-3 19:41
是的,字符串也可以进行切片操作,你可以自己试试

非常感谢,以后还多向您请教。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 20:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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