鱼C论坛

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

[技术交流] 关于零基础十二课最后一题的问题

[复制链接]
发表于 2016-8-29 00:43:09 | 显示全部楼层 |阅读模式

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

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

x
ist1=['1.just 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]]
print(list3)

【list3看不懂,为什么slogan[2:],,表达式好像 slogan[0]=='1.just do it',name[0]=='4.阿迪达斯',为什么两者会相同,看不懂list3求大牛解惑,谢谢。
我学的是Python3.0,用win7】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-29 08:57:59 | 显示全部楼层
list3的这种写法是列表推导式,其实和下面这种写法效果是一样的:
  1. list3 = []
  2. for slogan in list1:
  3.     for name in list2:
  4.         if slogan[0] == name[0]:
  5.             list3.append(name+slogan[2:])
复制代码

这样写你应该能看明白了吧?
至于为什么是slogan[2:],那是因为name里面已经包含序号了,所以拼接起来的时候要去掉slogan的序号,还是不明白的话你试一试不加[2:]是什么样的就明白了

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +2 收起 理由
coffee_cat + 2 + 2 + 2

查看全部评分

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

使用道具 举报

发表于 2016-8-29 09:24:18 | 显示全部楼层
for slogan in list1 for name in list2              一个for循环,比如list1的第0个元素会与list2的每个元素匹配一次,可以参考楼上
if slogan[0] == name[0]         这一句表示如果两者的第一个元素相等就打印,如果不等就继续匹配下一个
slogan[2:]              2代表从第二个元素开始,list1的第零个元素是数字,第一个元素是小数点,则从小数点后面开始,冒号后面是不填,表示第二个元素到最后一个元素

评分

参与人数 1荣誉 +2 鱼币 +2 贡献 +1 收起 理由
coffee_cat + 2 + 2 + 1

查看全部评分

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 14:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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