鱼C论坛

 找回密码
 立即注册
查看: 1101|回复: 2

求助

[复制链接]
发表于 2018-3-30 22:28:27 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
有大神帮忙简单翻译解释下这个嘛
>>> list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
  12章课后习题  看不懂
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-30 22:32:54 | 显示全部楼层
list3 整个就是一个列表

#分解开来就是:

list3=[]
for slogan in list1:
    for name in list2:
        if slogan[0] == name[0]:
            list3.append(name + ':' + slogan[2:])
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-2 11:56:13 | 显示全部楼层
  1. #给网友解释:
  2. #list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]

  3. list1 = ['1.Just do It','2.一切皆有可能','3.让编程改变世界','4.Impossible is Nothing' ]
  4. list2 = ['4.阿迪达斯','2.李宁','3.鱼C工作室','1.耐克']
  5. #list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
  6. list3 = []
  7. for slogan in list1:
  8.     for name in list2:
  9.         if slogan[0] == name[0]:
  10.             list3.append('%s : %s' % (name, slogan[2:]))
  11. for line_context in list3:
  12.     print(line_context)

  13. '''
  14. 熟悉列表推导式的步骤:
  15. 1.如果想理解列表推导式,你先需要了解简单的列表推导式。
  16. 2.了解简单列表推导式步骤:
  17.     需要还原列表推导式为普通语块,然后你要对着两个表达式相对比较,这是必要的。
  18. 3.了解了简单的列表推导式,然后进一步做升级版的列表推导式,把他还原出来,对比。
  19. 4.提醒的是一般是for循环一层一层的缩进,然后条件也是缩进,一般列表推导式就这样规则,先输出结果试一试,结果一样就是还原对了

  20. 对这个题目的关键处提醒:
  21. 1.list1对应slogan    list2对应name,这里slogan和name的数据类型是字符串,来源于for循环每次遍历都会把list1和list2的每个元素打印出来。
  22. 2.name是list2的每个元素。
  23. 3.slogan[2:]这个是字符串的切片功能。例如'slogan = 1.Just do It'  slogan[2:],这就得到了J开始到后面的全部字符串。


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 00:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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