鱼C论坛

 找回密码
 立即注册
查看: 1034|回复: 6

[已解决]一个打了激素的数组3,第12讲,课后作业第6题

[复制链接]
发表于 2018-12-15 03:39:54 | 显示全部楼层 |阅读模式

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

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

x
>>> list1 = ['1.Jost 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]]
>>> for each in list3:
        print(each)

       
1.耐克:Jost do It
2.李宁:一切皆有可能
3.鱼c工作室:让编程改变世界
4.阿迪达斯:Impossible is Nothing



list3后面的列表推导式看不懂  有大神帮忙解析成语句吗
最佳答案
2018-12-16 00:19:47
本帖最后由 Stubborn 于 2018-12-16 00:23 编辑
  1. list1 = ['1.Jost do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
  2. list2 = ['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克']
  3. list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]   
  4. #       [                   表达式          for 变量   in 列表for 变量   in 列表 if  条件                        ]
  5. #新的列表“格式是这样的”  [name + ':' + slogan[2:]  这个“格式”里面的变量从哪里来的呢?有仔细看我的笔记应该可以看到的
  6. #首先看name的值 是从list2列表历遍出来的,是list2列表里面每个的值。同理slogan[2:]等于list1里面每个的值。 自己注意切片位置
  7. [b]#假如没有后面if条件,你自己思考下,得出来的list3会是什么? 而后面if条件筛选出来的又是什么条件的字符串,多多思考下。[/b]
  8. list1=["羊","狗","牛"]
  9. list2=['草','狗粮','菜']
  10. [x+'吃'+y for x in list1 for y in list2]
  11. ['羊吃草', '羊吃狗粮', '羊吃菜', '狗吃草', '狗吃狗粮', '狗吃菜', '牛吃草', '牛吃狗粮', '牛吃菜']
  12. #对比下这里,x+'吃'+y  这里是所谓新列表的“格式”,里面 x和y的值是怎么来的?
复制代码


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

使用道具 举报

发表于 2018-12-15 09:25:39 | 显示全部楼层
我解析一下

  1.   list1 = ['1.Jost do It', '2.一切皆有可能', '3.让编程改变世界', '4.Impossible is Nothing']
  2.         list2 = ['4.阿迪达斯', '2.李宁', '3.鱼c工作室', '1.耐克']
  3.         #list3 = [name + ':' + slogan[2:]

  4.         list3 = [];
  5.         for slogan in list1:
  6.            for name in list2:
  7.                if slogan[0] == name[0]:
  8.                    list3.append(name + ':' + slogan[2:])
  9.         for each in list3:
  10.             print(each)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2018-12-15 09:45:25 | 显示全部楼层
list1 = ['1.Jost do It', '2.一切皆有可能', '3.让编程改变世界', '4.Impossible is Nothing']
list2 = ['4.阿迪达斯', '2.李宁', '3.鱼c工作室', '1.耐克']
#list3 = [name + ':' + slogan[2:]
list3 = [];
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' + slogan[2:])
for each in list3:
    print(each)

經測試沒毛病
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-15 14:20:30 | 显示全部楼层
  1. list1 = ['1.Jost do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
  2. list2 = ['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克']

  3. # -------------------------------------------------------------------------------
  4. # list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
  5. # 相当于:
  6. list3 = []
  7. for slogan in list1:            # slogan   是一个临时 变量名而已,
  8.     for name in list2:            # name   也是一个临时变量名,
  9.         if slogan[0] == name[0]:   
  10.             list3.append(name + ': ' +slogan[2:])
  11. # -------------------------------------------------------------------------------

  12. print(list3)       #  这里先打印 一下 list3 查看里面的内容,
  13. for each in list3:
  14.     print(each)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-15 17:17:39 | 显示全部楼层
https://fishc.com.cn/thread-127452-1-1.html    看看这个笔记吧,关于推导式的,希望可以帮到你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-12-15 19:31:40 | 显示全部楼层
Stubborn 发表于 2018-12-15 17:17
https://fishc.com.cn/thread-127452-1-1.html    看看这个笔记吧,关于推导式的,希望可以帮到你

不是很看得懂, 希望可以帮我把上面的解析一下 应该会明白很多,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-16 00:19:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Stubborn 于 2018-12-16 00:23 编辑
  1. list1 = ['1.Jost do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing']
  2. list2 = ['4.阿迪达斯','2.李宁','3.鱼c工作室','1.耐克']
  3. list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]   
  4. #       [                   表达式          for 变量   in 列表for 变量   in 列表 if  条件                        ]
  5. #新的列表“格式是这样的”  [name + ':' + slogan[2:]  这个“格式”里面的变量从哪里来的呢?有仔细看我的笔记应该可以看到的
  6. #首先看name的值 是从list2列表历遍出来的,是list2列表里面每个的值。同理slogan[2:]等于list1里面每个的值。 自己注意切片位置
  7. [b]#假如没有后面if条件,你自己思考下,得出来的list3会是什么? 而后面if条件筛选出来的又是什么条件的字符串,多多思考下。[/b]
  8. list1=["羊","狗","牛"]
  9. list2=['草','狗粮','菜']
  10. [x+'吃'+y for x in list1 for y in list2]
  11. ['羊吃草', '羊吃狗粮', '羊吃菜', '狗吃草', '狗吃狗粮', '狗吃菜', '牛吃草', '牛吃狗粮', '牛吃菜']
  12. #对比下这里,x+'吃'+y  这里是所谓新列表的“格式”,里面 x和y的值是怎么来的?
复制代码


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-19 16:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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