鱼C论坛

 找回密码
 立即注册
查看: 2958|回复: 7

新手,第12课课后题最后一个没太看明白

[复制链接]
发表于 2014-10-28 11:56:20 | 显示全部楼层 |阅读模式

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

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

x
题简化一下大概是这样,list3是让填写的,但是为啥这么写,我没看懂,求解释一下
list1=['1.a','2.b','3.c','4.d']
list2=['4.D','3.C','2.B','1.A']
list3=[name+':'+slogan[2:] for slogan in list1 for name in list2 if slogan[0]==name[0]]
for each in list3:
    print(each)
1.A:a
2.B:b
3.C:c
4.D:d
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-28 17:02:15 | 显示全部楼层
你也可以这么写
  1. list1=['1.a','2.b','3.c','4.d']
  2. list2=['1.A','2.B','3.C','4.D']
  3. list3 = []
  4. for slogan,name in zip(list1,list2):
  5.   if slogan[0] == name[0]:
  6.     list3.append(name+':'+slogan[2:])
  7. print(list3)
复制代码


或者这么写
  1. list1=['1.a','2.b','3.c','4.d']
  2. list2=['1.A','2.B','3.C','4.D']
  3. list3 = []
  4. for slogan in list1:
  5.   for name in list2:
  6.     if slogan[0] == name[0]:
  7.       list3.append(name+':'+slogan[2:])
  8. print(list3)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-28 21:45:21 | 显示全部楼层
wei_Y 发表于 2014-10-28 17:02
你也可以这么写

恩,我是没看明白name+':'+slogan[2:]的slogan[2:]是为啥,还有slogan[0] == name[0],因为题里list1和list2是反着的,为啥这么对这结果不是a=D
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-29 10:22:49 | 显示全部楼层
古月茹 发表于 2014-10-28 21:45
恩,我是没看明白name+':'+slogan[2:]的slogan[2:]是为啥,还有slogan[0] == name[0],因为题里list1和li ...

看我写的第二个那个,先是一个for循环,他执行后往下走,又遇到一个for循环,这时候执行的是第二个for循环,你看这样
  1. list1=['1.a','2.b','3.c','4.d']
  2. list2=['1.A','2.B','3.C','4.D']
  3. list3 = []
  4. for slogan in list1:
  5.   for name in list2:
  6.     print(slogan,name)
复制代码
360截图20141029101511250.jpg
因为下面写的判断slogan[0]和name[0]也就是他们的序号,一样的就执行了不一样的就没了,序号是几点几 因为是从0开始记,序号为0,点为1,剩下的也就是slogan[2:]。

  1. list3 = [slogan+name for slogan in list1 for name in list2]
复制代码

这样写效果也一样。
['1.a1.A', '1.a2.B', '1.a3.C', '1.a4.D', '2.b1.A', '2.b2.B', '2.b3.C', '2.b4.D', '3.c1.A', '3.c2.B', '3.c3.C', '3.c4.D', '4.d1.A', '4.d2.B', '4.d3.C', '4.d4.D']

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

使用道具 举报

 楼主| 发表于 2014-10-29 19:37:47 | 显示全部楼层
wei_Y 发表于 2014-10-29 10:22
看我写的第二个那个,先是一个for循环,他执行后往下走,又遇到一个for循环,这时候执行的是第二个for循 ...

恩,我明白了,thank you
之前什么语言都木学过。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-10-29 19:53:25 | 显示全部楼层
古月茹 发表于 2014-10-29 19:37
恩,我明白了,thank you
之前什么语言都木学过。。。

我也是,只会一点点python。。
一起学习吧。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-10-30 18:34:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2014-10-30 18:38:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-13 02:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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