鱼C论坛

 找回密码
 立即注册
查看: 5195|回复: 18

[已解决]【求解列表推导式】【零基础python作业012讲】

[复制链接]
发表于 2018-3-6 00:18:39 | 显示全部楼层 |阅读模式

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

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

x
list1=['1.just do it','2.一切皆有可能','3.编程改变世界','4. impossible is nothing']
list2=['4.阿迪达斯','2.李宁','3.工作室','1.耐克']
# list3不太理解怎么得来的
list3=[name+':'+slogan[2:]for slogan in list1 for name in list2 if slogan[0]==name[0]]
for each in list3:
        print each


可以帮忙1⃣️解释一下list3的列表推导式吗?2⃣️还原这个列表推导式。谢谢🙏
最佳答案
2018-3-6 00:35:33
#这个列表推导式可以拆解成这样,
list3=[]
for slogan in list1:
        for name in list2:
                if slogan[0]==name[0]:
                        list3.append(name + ':'+ slogan[2:])

#其中slogan[0]和name[0]对应的是序号1,2,3,4。而slogan[2:]对应的是'just do it','一切皆有可能','编程改变世界','impossible is nothing'
044035qddrqkmrqod4cqmr.png

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-6 00:35:33 | 显示全部楼层    本楼为最佳答案   
#这个列表推导式可以拆解成这样,
list3=[]
for slogan in list1:
        for name in list2:
                if slogan[0]==name[0]:
                        list3.append(name + ':'+ slogan[2:])

#其中slogan[0]和name[0]对应的是序号1,2,3,4。而slogan[2:]对应的是'just do it','一切皆有可能','编程改变世界','impossible is nothing'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-6 08:38:43 From FishC Mobile | 显示全部楼层
就是判断对应编号一致后,取list2的每个元素加上冒号再加上list1的对应元素去掉编号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 09:42:12 From FishC Mobile | 显示全部楼层
2楼回答得很正确,刚学完这一课来说说感受。
我当时做这题的时候一脸懵逼,该怎样匹配两者呢,当时有想到查找字符串的第一个字符用来匹配,但是不知道对应BIF是什么。
一看答案才发现:字符串后面加上[]是可以转换成列表类型的!我想这个就是正确匹配slogan和name的关键。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 16:04:50 | 显示全部楼层
看2楼的解释看两遍才看懂。第一遍看也是一脸懵逼。2楼的解释太完美了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-27 10:30:43 | 显示全部楼层
没明白IF,后面不需要ELSE?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-31 11:38:03 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-24 23:45:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-6-24 23:45:52 | 显示全部楼层
#其中slogan[0]和name[0]对应的是序号1,2,3,4。而slogan[2:]对应的是'just do it','一切皆有可能','编程改变世界','impossible is nothing'
能不能再解释下这两句,不懂啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-1 03:42:57 | 显示全部楼层
Flouxetine 发表于 2019-6-24 23:45
#其中slogan[0]和name[0]对应的是序号1,2,3,4。而slogan[2:]对应的是'just do it','一切皆有可能','编程 ...

我刚也不懂,去练习了下有点理解了,你可以看下:
slogan[0]和name[0]都是相当于每次从list1/list2中取出每个元素的第1个元素。
slogan[2:]每次从list1中取出每个元素第2个以后的所有元素。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-8 16:27:59 | 显示全部楼层
列表推导式形式:[ 打印形式 for in   for in   if ]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-14 11:31:54 | 显示全部楼层
Chase_Kas 发表于 2018-3-6 09:42
2楼回答得很正确,刚学完这一课来说说感受。
我当时做这题的时候一脸懵逼,该怎样匹配两者呢,当时有想到 ...

我也是有同感,真的需要多看几遍才能其义自现,多思考,勤上机实操,帮助确实大。另外注意条件的运用与多项表达式(是不是这么说也不确定)的写法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-12 09:51:43 | 显示全部楼层
ouyunfu 发表于 2018-3-6 00:35
#这个列表推导式可以拆解成这样,
list3=[]
for slogan in list1:

name + ':' + slogan[2:]        
slogan[2:]这个我还是理解不了,为什么是[2:]这个是什么作用呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-24 11:58:30 | 显示全部楼层
皮皮卸 发表于 2019-9-12 09:51
name + ':' + slogan[2:]        
slogan[2:]这个我还是理解不了,为什么是[2:]这个是什么作用呢?

提取列表中从第二个开始一直都结束的所有元素。看一下小甲鱼的视频,里面有list[1:3]那里,是提取第1到第3个元素。如果省略前面【:3】就是提取第0个到第三个。从左往右取,不包括第三个,【1:】就是从第一个到最后,包括第一个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-2 18:08:34 | 显示全部楼层
没学好 到此一游
个人认为最佳答案#后面描述错误,name + ':' + slogan[2:]  中 的[2:] 去掉  1. 或 2. 等等



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

使用道具 举报

发表于 2020-3-12 01:22:17 | 显示全部楼层
感觉变秃不是梦了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-7 09:39:15 | 显示全部楼层
ouyunfu 发表于 2018-3-6 00:35
#这个列表推导式可以拆解成这样,
list3=[]
for slogan in list1:

slogan[:2]  中间的2为什么不是1呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-6 17:56:07 | 显示全部楼层
ouyunfu 发表于 2018-3-6 00:35
#这个列表推导式可以拆解成这样,
list3=[]
for slogan in list1:

大佬大佬,我这个还是不太懂啊,已经看了好几遍了。
第一个问题就是如果slogan从第三个开始取值的话,获得的是‘3.让编程改变世界’,和name从第一个取值的‘4.阿迪达斯’也是不匹配的啊?
第二个就是去掉slogan里面编号的是在哪一步体现的呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-22 17:47:44 | 显示全部楼层
我觉得二楼的解释很详细了,可是作为萌新的我思考了好久,总觉的哪里不对劲,slogan in list1  那么slogan应该是个字符串,如:slogan = '2.一切皆有可能' ,而不是slogan = [2, . ,一,切,皆,有,可,能]  ,这不是列表吧,那么何谈slogan[0] = 2 呢?可是试过之后,slogan[0] = 2 ,这才知道字符串好像是可以看作列表的啊,但之前小甲鱼好像没讲过啊,不知道我对字符串可以看作列表的理解对不对?希望能得到大佬指导
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 09:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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