鱼C论坛

 找回密码
 立即注册
查看: 1202|回复: 9

[已解决]第12课课后作业6题有些不懂

[复制链接]
发表于 2018-5-28 02:36:47 | 显示全部楼层 |阅读模式

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

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

x
044035qddrqkmrqod4cqmr.png
答案是:>>> list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]


这个slogan是什么语句呀 没遇到过,还有最后为什么只需要 if slogan[0] == name[0]  就可以满足每个编号都对应起来呢
最佳答案
2018-5-28 08:33:23
hi list3相关代码是一个列表推导式,包含: 循环、分支、列表基础知识。将相关代码按循环+分支重新编写如下,请lz参考

  1. list1 = ['1.just do it','2,一切皆有可能','3.让编程改变世界']
  2. list2 = ['2.lining','3.fishc','1.nike']
  3. list3 = []

  4. for i in list1:
  5.     for j in list2:
  6.         if i[0] == j[0]: #比较list1、list2 元素中的第一个字符
  7.             list3.append(j + ':' + i[2:])#若相同,按格式写入

  8. print(list3)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-28 08:16:00 | 显示全部楼层
slogan不是语句,仅仅是一个变量名。
用for语句遍历两个列表,slogan是list1的每个元素,slogan[0]就是前面的数字(即编号),name也是一样,当slogan[0]和 name[0]相等时, 编号都对应起来了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-5-28 08:33:23 | 显示全部楼层    本楼为最佳答案   
hi list3相关代码是一个列表推导式,包含: 循环、分支、列表基础知识。将相关代码按循环+分支重新编写如下,请lz参考

  1. list1 = ['1.just do it','2,一切皆有可能','3.让编程改变世界']
  2. list2 = ['2.lining','3.fishc','1.nike']
  3. list3 = []

  4. for i in list1:
  5.     for j in list2:
  6.         if i[0] == j[0]: #比较list1、list2 元素中的第一个字符
  7.             list3.append(j + ':' + i[2:])#若相同,按格式写入

  8. print(list3)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2018-5-28 09:00:46 | 显示全部楼层
1 这里的siogan只是一个变量名,并不是必须得写成slogan的形式,你可以换成其他任何正确的变量名,比如a,b等

2  if slogan[0] == name[0] 是将两个字符串的第一个字符比较,你看两个list中的每个字符串第一个字符是不是都是数字标号,相同的为一组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-28 11:04:41 | 显示全部楼层
slogan只是一个变量,只是个名字,你可以随便换成其他的名字,比如a、b、c等等
if slogan[0] == name[0] :slogan对应list1,name对应list2.   slogan[0]和name[0]指的是所对应的第一个字符,即两个数字,当这两个数字相同时就是一组
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-28 11:35:21 | 显示全部楼层
列表推导。slogan相当于这里的item:
lyst = [1, 2, 3]
[item for item in lyst]

上述语句等价于:
lyst[:]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-5-28 12:31:43 | 显示全部楼层
冬雪雪冬 发表于 2018-5-28 08:16
slogan不是语句,仅仅是一个变量名。
用for语句遍历两个列表,slogan是list1的每个元素,slogan[0]就是前 ...

好的这点懂了,那[name + ':' + slogan[2:] ...... ]    这里的“slogan[2:]”是什么意思呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-28 12:33:43 | 显示全部楼层
我想当个程序员 发表于 2018-5-28 12:31
好的这点懂了,那[name + ':' + slogan[2:] ...... ]    这里的“slogan[2:]”是什么意思呢?

额,我领悟了,这个[2:]就是表示从的三个字符开始吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-28 12:35:47 | 显示全部楼层
我想当个程序员 发表于 2018-5-28 12:33
额,我领悟了,这个[2:]就是表示从的三个字符开始吧?

从第三个字符到最后一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-28 13:44:08 | 显示全部楼层
我想当个程序员 发表于 2018-5-28 12:33
额,我领悟了,这个[2:]就是表示从的三个字符开始吧?

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 10:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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